feat: tests #290
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Integration | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
- feature/v1 | |
permissions: | |
contents: read | |
jobs: | |
test-docker: | |
name: Docker Tests | |
runs-on: ubuntu-latest | |
# Run a local registry to push to | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5001:5000 | |
env: | |
TEST_TAG: localhost:5001/actions/yq-yaml-parser-action:latest | |
steps: | |
- name: Checkout | |
id: checkout | |
uses: actions/checkout@v4 | |
- name: Setup Docker BuildX | |
id: setup-buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
install: true | |
driver-opts: network=host | |
- name: Build the Container | |
id: build | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
tags: ${{ env.TEST_TAG }} | |
- name: Run the Container | |
id: run | |
env: | |
INPUT_YAML_FILE_PATH: ./yq-test.yml | |
run: | | |
docker run \ | |
--workdir /github/workspace \ | |
--volume "${{ github.workspace }}":/github/workspace \ | |
--volume "${{ runner.temp }}/_runner_file_commands":${{ runner.temp }}/_runner_file_commands \ | |
--env GITHUB_OUTPUT="$GITHUB_OUTPUT" \ | |
--env INPUT_YAML_FILE_PATH="${{ env.INPUT_YAML_FILE_PATH }}" \ | |
--rm ${{ env.TEST_TAG }} | |
- name: Print Output | |
id: output | |
run: echo "${{ steps.run.outputs.time }}" | |
test-action: | |
name: GitHub Actions Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
id: checkout | |
uses: actions/checkout@v4 | |
- name: Test Local Action | |
id: test-action | |
uses: ./ | |
with: | |
file-path: ./yq-test.yml | |
# - name: Print Outputs | |
# id: outputs | |
# run: echo "${{ toJson(steps.test-action.outputs) }}" | |
- name: Test Output Comment Line | |
id: test-output-comment-line | |
run: | | |
test_name="Test Output Comment Line" | |
expected_result="./app =" | |
output_result="${{ steps.test-action.outputs.action-test_comment-line }}" | |
echo "Expected Result:" | |
echo "$expected_result" | |
echo "" | |
echo "Output Result:" | |
echo "$output_result" | |
echo "" | |
if [[ "$output_result" == "$expected_result" ]]; then | |
echo "Test Passed: $test_name" | |
echo "### :white_check_mark: Test Passed: $test_name" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "Test Failed: $test_name" | |
echo "### :x: Test Failed: $test_name" >> $GITHUB_STEP_SUMMARY | |
echo "Expected Result:" >> $GITHUB_STEP_SUMMARY | |
echo "$expected_result" >> $GITHUB_STEP_SUMMARY | |
echo "" >> $GITHUB_STEP_SUMMARY | |
echo "Output Result:" >> $GITHUB_STEP_SUMMARY | |
echo "$output_result" >> $GITHUB_STEP_SUMMARY | |
fi | |
- name: Test Output Multiline | |
id: test-output-multiline | |
run: | | |
test_name="Test Output Multiline" | |
expected_result=$(printf "%b" "### Heading\n\n* Bullet C:\\\\\\\\ E:\\\\\n* Driver D:\\\\\n* Points") | |
output_result="${{ steps.test-action.outputs.action-test_multiline }}" | |
echo "Expected Result:" | |
echo "$expected_result" | |
echo "" | |
echo "Output Result:" | |
echo "$output_result" | |
echo "" | |
if [[ "$output_result" == "$expected_result" ]]; then | |
echo "Test Passed: $test_name" | |
echo "### :white_check_mark: Test Passed: $test_name" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "Test Failed: $test_name" | |
echo "### :x: Test Failed: $test_name" >> $GITHUB_STEP_SUMMARY | |
expected_result_summary=$(printf "%s" "${expected_result//\\/\\\\}") | |
output_result_summary=$(printf "%s" "${output_result//\\/\\\\}") | |
echo "Expected Result:" >> $GITHUB_STEP_SUMMARY | |
echo "$expected_result_summary" >> $GITHUB_STEP_SUMMARY | |
echo "" >> $GITHUB_STEP_SUMMARY | |
echo "Output Result:" >> $GITHUB_STEP_SUMMARY | |
echo "$output_result_summary" >> $GITHUB_STEP_SUMMARY | |
fi |