Skip to content

Feature/v1

Feature/v1 #315

Workflow file for this run

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
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@v6
with:
context: .
push: true
tags: ${{ env.TEST_TAG }}
- name: Run the Container
id: run
env:
INPUT_YAML_FILE_PATH: ./yq-test-action.yml
run: |
docker run \
--user root \
--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 }}
test-action:
name: GitHub Actions Test Output
runs-on: ubuntu-latest
outputs:
comment-line: ${{ steps.action.outputs.test-action_comment-line }}
multiline: ${{ steps.action.outputs.test-action_multiline }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
- name: Test Action
id: action
uses: ./
with:
file-path: ./yq-test-action.yml
test-action-output-comment-line:
name: GitHub Actions Test Output - Comment Line
needs: test-action
runs-on: ubuntu-latest
steps:
- name: Test Output Comment Line
id: test-output-comment-line
run: |
test_name="Test Output Comment Line"
expected_result="./app ="
output_result="${{ needs.test-action.outputs.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
expected_result_summary=$(printf "%s" "${expected_result//\\/\\\\}" | sed 's/ /·/g')
output_result_summary=$(printf "%s" "${output_result//\\/\\\\}" | sed 's/ /·/g')
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
exit 1
fi
test-action-output-multiline:
name: GitHub Actions Test Output - Multiline
needs: test-action
runs-on: ubuntu-latest
steps:
- 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="${{ needs.test-action.outputs.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//\\/\\\\}" | sed 's/ /·/g')
output_result_summary=$(printf "%s" "${output_result//\\/\\\\}" | sed 's/ /·/g')
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
exit 1
fi