Unit Tests #1248
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: Unit Tests | |
on: | |
pull_request: | |
branches: [ main ] | |
push: | |
branches: [ main ] | |
merge_group: | |
types: [ checks_requested ] | |
permissions: | |
contents: read | |
jobs: | |
changes: | |
name: Detect changes | |
runs-on: ubuntu-latest | |
outputs: | |
test-image: ${{ steps.filter.outputs.test-image }} | |
steps: | |
- name: Repository checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
submodules: recursive | |
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | |
id: filter | |
with: | |
filters: | | |
test-image: | |
- 'test/Dockerfile' | |
test: | |
needs: changes | |
if: ${{ needs.changes.outputs.test-image == 'false' }} | |
name: Test suite | |
runs-on: ubuntu-latest | |
container: ghcr.io/redhat-plumbers-in-action/differential-shellcheck/test:latest | |
permissions: | |
packages: read | |
steps: | |
- name: Repository checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
submodules: recursive | |
- name: Run tests using Kcov | |
run: | | |
set -x | |
bash --version | |
bats --version | |
kcov --version | |
kcov \ | |
--clean \ | |
--include-path . \ | |
--exclude-path test/bats \ | |
--exclude-path test/test_helper \ | |
coverage/ \ | |
bats test/*.bats | |
- name: Codecov - 1st attempt | |
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 | |
id: upload_code_coverage_report | |
continue-on-error: true | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
- name: Wait on failure 1 | |
if: steps.upload_code_coverage_report.outcome == 'failure' | |
run: | | |
sleep 120s | |
- name: Codecov - 2nd attempt | |
if: steps.upload_code_coverage_report.outcome == 'failure' | |
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
verbose: true | |
test-changes: | |
needs: changes | |
if: ${{ needs.changes.outputs.test-image == 'true' }} | |
name: Test suite - Local changes | |
runs-on: ubuntu-latest | |
steps: | |
- name: Repository checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
submodules: recursive | |
- name: Build test container using local changes | |
shell: bash | |
run: | | |
make build-test | |
- name: Run tests locally using container | |
shell: bash | |
run: | | |
make check | |
# There is some issue with code coverage inside the container | |
# TODO: Try to finger out how to run kcov inside container and retrieve coverage results | |
# - name: Codecov - 1st attempt | |
# uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 | |
# id: upload_code_coverage_report | |
# continue-on-error: true | |
# with: | |
# token: ${{ secrets.CODECOV_TOKEN }} | |
# fail_ci_if_error: true | |
# - name: Wait on failure 1 | |
# if: steps.upload_code_coverage_report.outcome == 'failure' | |
# run: | | |
# sleep 120s | |
# - name: Codecov - 2nd attempt | |
# if: steps.upload_code_coverage_report.outcome == 'failure' | |
# uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 | |
# with: | |
# token: ${{ secrets.CODECOV_TOKEN }} | |
# fail_ci_if_error: true | |
# verbose: true | |
... |