From f39ba421db243f87cb0f23fa042187fb7145dfca Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Sun, 2 Aug 2020 16:49:35 +0000 Subject: [PATCH 1/2] Fix update description not running on push tags Also, set the display name for the job. --- .github/workflows/docker-build-and-push.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml index 1ac1585..d104ce7 100644 --- a/.github/workflows/docker-build-and-push.yaml +++ b/.github/workflows/docker-build-and-push.yaml @@ -4,7 +4,9 @@ on: push: jobs: - docker: + docker-build-and-push: + name: Docker Build and Push + runs-on: ubuntu-latest steps: @@ -44,7 +46,7 @@ jobs: tags: ${{ env.DOCKER_TAGS }} tag_with_sha: true - - if: github.ref == 'refs/heads/master' + - if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') name: Update Docker Hub Description uses: peter-evans/dockerhub-description@v2 env: From b1574a37f1c2960247a7b27aa375c32d4ea4f2b0 Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Sun, 2 Aug 2020 17:16:35 +0000 Subject: [PATCH 2/2] Make workflow work in pull requests But it won't push since the secrets are not available in PR runs. --- .github/workflows/docker-build-and-push.yaml | 37 +++++++++++++++----- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml index d104ce7..90cc24d 100644 --- a/.github/workflows/docker-build-and-push.yaml +++ b/.github/workflows/docker-build-and-push.yaml @@ -1,22 +1,23 @@ -name: Docker Build and Push +name: Docker build and push on: push: + pull_request: jobs: docker-build-and-push: - name: Docker Build and Push + name: Docker build and push runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + # This is a workaround due to + # https://github.community/t/how-to-use-env-context/16975 + # and https://github.com/docker/build-push-action/issues/43 - name: Set environment variables run: | - # These env variables are set here because of - # https://github.community/t/how-to-use-env-context/16975 - DOCKER_USERNAME=matejak echo "::set-env name=DOCKER_USERNAME::$DOCKER_USERNAME" @@ -27,16 +28,36 @@ jobs: version="${GITHUB_REF#refs/tags/}" DOCKER_TAGS="latest,$version" unset version + elif [[ "$GITHUB_REF" = refs/pull/* ]]; then + pr_number="${GITHUB_REF##*refs/pull/}" + pr_number="${pr_number%%/merge*}" + DOCKER_TAGS="pr-$pr_number" + unset pr_number else branch="${GITHUB_REF#refs/heads/}" - branch="branch-${branch/\//-}" - DOCKER_TAGS="$branch" + branch="${branch//\//-}" + DOCKER_TAGS="branch-$branch" unset branch fi echo "::set-env name=DOCKER_TAGS::$DOCKER_TAGS" echo "The tags were set to '$DOCKER_TAGS'" - - uses: docker/build-push-action@v1 + # This is a workaround due to + # https://github.com/docker/build-push-action/issues/85 + - if: startsWith(github.ref, 'refs/pull/') + name: Docker build + uses: docker/build-push-action@v1 + with: + push: false + repository: ${{ env.DOCKER_IMAGE }} + dockerfile: docker/Dockerfile + add_git_labels: true + tags: ${{ env.DOCKER_TAGS }} + tag_with_sha: true + + - if: "! startsWith(github.ref, 'refs/pull/')" + name: Docker build and push + uses: docker/build-push-action@v1 with: username: ${{ env.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }}