From 411cf9f6c772e67b2a6a0227e15c64090c7dd3e7 Mon Sep 17 00:00:00 2001 From: Scott J Dickerson Date: Fri, 10 May 2024 11:08:06 -0400 Subject: [PATCH] :sparkles: Test image build on Dockerfile change Signed-off-by: Scott J Dickerson --- .github/workflows/ci-Dockerfile.yml | 91 +++++++++++++++++++++++++++++ .github/workflows/ci-repo.yml | 7 ++- 2 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/ci-Dockerfile.yml diff --git a/.github/workflows/ci-Dockerfile.yml b/.github/workflows/ci-Dockerfile.yml new file mode 100644 index 0000000000..4a740fa67b --- /dev/null +++ b/.github/workflows/ci-Dockerfile.yml @@ -0,0 +1,91 @@ +name: CI (test image build for a PR with a Dockerfile change) + +on: + pull_request: + branches: + - "main" + - "release-*" + +jobs: + checks: + runs-on: ubuntu-latest + outputs: + should_test: ${{ steps.check-dockerfile.outputs.should-test == 'true' }} + + steps: + - uses: actions/checkout@v4 + + - name: What files changed? + id: changed + uses: tj-actions/changed-files@v44 + with: + files: | + Dockerfile + + - name: Check if the `Dockerfile` has been changed in a PR + id: check-dockerfile + env: + IS_PR: ${{ !!github.event.pull_request }} + ANY_MODIFIED: ${{ steps.changed.outputs.any_modified }} + run: | + TEST_IMAGE_BUILD=$( + if [[ $IS_PR == true ]] && [[ $ANY_MODIFIED == true ]]; then + echo "true" + else + echo "false" + fi + ) + + echo "is-pr=$IS_PR" >> "$GITHUB_OUTPUT" + echo "changed=${ANY_MODIFIED:-false}" >> "$GITHUB_OUTPUT" + echo "should-test=$TEST_IMAGE_BUILD" >> "$GITHUB_OUTPUT" + + - name: Summarize findings + env: + CHANGED_OUTPUT: ${{ toJson(steps.changed.outputs) }} + run: | + cat >> "$GITHUB_STEP_SUMMARY" <