feat: capture code coverage in tests #90
This file contains hidden or 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: Test-E2E | |
| on: | |
| pull_request: | |
| paths: | |
| - "**.sh" | |
| - "test/**" | |
| - "action.yml" | |
| - ".github/workflows/test-e2e.yml" | |
| jobs: | |
| gh-action-default: | |
| name: Action validates Dockerfiles | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: ./ | |
| with: | |
| dockerfile: test/fixtures/Dockerfile-valid | |
| gh-action-version: | |
| name: Action supports custom version | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: ./ | |
| id: check | |
| with: | |
| dockerfile: test/fixtures/Dockerfile-valid | |
| version: 2.10.0 | |
| - name: Compare versions | |
| env: | |
| HADOLINT_VERSION: ${{ steps.check.outputs.hadolint_version }} | |
| REQUESTED_VERSION: 2.10.0 | |
| run: | | |
| if [[ "${HADOLINT_VERSION}" != "${REQUESTED_VERSION}" ]]; then | |
| echo "::error::Version mismatch: \"${HADOLINT_VERSION}\" does not equal \"${REQUESTED_VERSION}\"" | |
| exit 1 | |
| fi | |
| gh-action-glob: | |
| name: Action supports glob expansion | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: ./ | |
| with: | |
| dockerfile: "test/**/Dockerfile-glob-*" | |
| annotate: false | |
| # https://github.com/jbergstroem/hadolint-gh-action/issues/134 | |
| gh-action-multiple-invocations: | |
| name: Action supports multiple invocations in a job | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| # Download and run default version | |
| - uses: ./ | |
| with: | |
| dockerfile: test/fixtures/Dockerfile-valid | |
| annotate: false | |
| # Download and run custom version | |
| - uses: ./ | |
| with: | |
| dockerfile: test/fixtures/Dockerfile-valid | |
| version: 2.11.0 | |
| annotate: false | |
| # Redownload if binary is broken, in this case a non-executable | |
| - run: chmod -x /usr/local/bin/hadolint | |
| - uses: ./ | |
| with: | |
| dockerfile: test/fixtures/Dockerfile-valid | |
| version: 2.11.0 | |
| annotate: false | |
| # Download and run default version again | |
| - uses: ./ | |
| with: | |
| dockerfile: test/fixtures/Dockerfile-valid | |
| annotate: false | |
| # https://github.com/jbergstroem/hadolint-gh-action/issues/142 | |
| gh-action-version-variations: | |
| name: Action supports version variations | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| version: ["1.23.0", "2.9.0", "2.12.0", "2.13.1"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: ./ | |
| id: check | |
| with: | |
| dockerfile: test/fixtures/Dockerfile-valid | |
| annotate: false | |
| version: ${{ matrix.version }} | |
| - name: Compare versions | |
| env: | |
| HADOLINT_VERSION: ${{ steps.check.outputs.hadolint_version }} | |
| REQUESTED_VERSION: ${{ matrix.version }} | |
| run: | | |
| if [[ "${HADOLINT_VERSION}" != "${REQUESTED_VERSION}" ]]; then | |
| echo "::error::Version mismatch: \"${HADOLINT_VERSION}\" does not equal \"${REQUESTED_VERSION}\"" | |
| exit 1 | |
| fi | |
| # https://github.com/jbergstroem/hadolint-gh-action/issues/147 | |
| gh-action-output: | |
| name: Action populates output if configured | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: ./ | |
| id: action-output | |
| with: | |
| dockerfile: "test/fixtures/Dockerfile-warning" | |
| annotate: false | |
| output_format: json | |
| - name: Compare output | |
| env: | |
| OUTPUT: ${{ steps.action-output.outputs.hadolint_output }} | |
| ASSERT: '"[{"code":"DL3018","column":1,"file":"test/fixtures/Dockerfile-warning","level":"warning","line":3,"message":"Pin versions in apk add. Instead of `apk add <package>` use `apk add <package>=<version>`"}]"' | |
| run: | | |
| if [[ "${OUTPUT}" != "${ASSERT}" ]]; then | |
| echo "::error::Output mismatch: \"${OUTPUT}\" does not equal \"${ASSERT}\"" | |
| exit 1 | |
| fi |