From 3b1b1165217dad69be1b7b1072f5cf2d6ab4bbe2 Mon Sep 17 00:00:00 2001 From: Alexander Bayandin Date: Sat, 16 Dec 2023 11:04:48 +0000 Subject: [PATCH] Fix IMAGE_TAG calculation --- .github/workflows/build_and_test.yml | 47 ++++++++++++++-------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 702f094c9d..d8cc28cedb 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -44,8 +44,30 @@ jobs: exit 1 - tag: + check-if-build-tools-dockerfile-changed: + if: github.event_name == 'pull_request' needs: [ check-permissions ] + runs-on: ubuntu-latest + outputs: + docker_file_changed: ${{ steps.dockerfile.outputs.docker_file_changed }} + steps: + - name: Check if Dockerfile.buildtools has changed + id: dockerfile + run: | + updated_files=$(gh pr --repo neondatabase/neon diff ${{ github.event.pull_request.number }} --name-only) + if [[ $updated_files == *"Dockerfile.buildtools"* ]]; then + DOCKER_FILE_CHANGED=true + else + DOCKER_FILE_CHANGED=false + fi + + echo "docker_file_changed=${DOCKER_FILE_CHANGED}" >> $GITHUB_OUTPUT + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + tag: + if: always() && contains(fromJSON('["success", "skipped"]'), needs.check-if-build-tools-dockerfile-changed.result) + needs: [ check-permissions, check-if-build-tools-dockerfile-changed ] runs-on: [ self-hosted, gen3, small ] container: 369495373322.dkr.ecr.eu-central-1.amazonaws.com/base:pinned outputs: @@ -76,7 +98,7 @@ jobs: - name: Get buildtools tag run: | - if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then + if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]] && [[ "${{ needs.check-if-build-tools-dockerfile-changed.outputs.docker_file_changed }}" == "true" ]]; then IMAGE_TAG=$GITHUB_RUN_ID else IMAGE_TAG=pinned @@ -86,27 +108,6 @@ jobs: shell: bash id: buildtools-tag - check-if-build-tools-dockerfile-changed: - if: github.event_name == 'pull_request' - needs: [ check-permissions ] - runs-on: ubuntu-latest - outputs: - docker_file_changed: ${{ steps.dockerfile.outputs.docker_file_changed }} - steps: - - name: Check if Dockerfile.buildtools has changed - id: dockerfile - run: | - updated_files=$(gh pr --repo neondatabase/neon diff ${{ github.event.pull_request.number }} --name-only) - if [[ $updated_files == *"Dockerfile.buildtools"* ]]; then - DOCKER_FILE_CHANGED=true - else - DOCKER_FILE_CHANGED=false - fi - - echo "docker_file_changed=${DOCKER_FILE_CHANGED}" >> $GITHUB_OUTPUT - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - build-buildtools-image: needs: [ check-permissions, check-if-build-tools-dockerfile-changed, tag] uses: ./.github/workflows/build_and_push_docker_image.yml