From d452cd947de982d9f4a47ba717bc47d4fe21eb1f Mon Sep 17 00:00:00 2001 From: Ruoyu Zhong Date: Tue, 27 Aug 2024 17:32:25 +0800 Subject: [PATCH] workflows/docker: consolidate pushes in single step --- .github/workflows/docker.yml | 144 ++++++++++++++++++----------------- 1 file changed, 75 insertions(+), 69 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 57e28a4a30..69f4683321 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -37,89 +37,95 @@ jobs: - name: Determine build attributes id: attributes run: | + date="$(date --rfc-3339=seconds --utc)" + brew_version="$(git describe --tags --dirty --abbrev=7)" + + cat < - github.event_name == 'release' || - (github.event_name == 'push' && github.ref == 'refs/heads/master' && - matrix.version == '22.04') - run: | - docker login ghcr.io -u BrewTestBot --password-stdin <<<"$TOKEN" - env: - TOKEN: ${{secrets.HOMEBREW_BREW_GITHUB_PACKAGES_TOKEN}} + if: steps.attributes.outputs.push == 'true' + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3 + with: + registry: ghcr.io + username: BrewTestBot + password: ${{ secrets.HOMEBREW_BREW_GITHUB_PACKAGES_TOKEN }} - name: Log in to Docker Hub - if: > - github.event_name == 'release' || - (github.event_name == 'push' && github.ref == 'refs/heads/master' && - matrix.version == '22.04') - run: | - docker login -u brewtestbot --password-stdin <<<"$TOKEN" - env: - TOKEN: ${{secrets.HOMEBREW_BREW_DOCKER_TOKEN}} + if: steps.attributes.outputs.push == 'true' + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3 + with: + username: brewtestbot + password: ${{ secrets.HOMEBREW_BREW_DOCKER_TOKEN }} - - name: Deploy the tagged Docker image to GitHub Packages - if: github.event_name == 'release' - run: | - brew_version="${GITHUB_REF:10}" - echo "brew_version=${brew_version}" >> "${GITHUB_ENV}" - docker tag brew "ghcr.io/homebrew/ubuntu${{matrix.version}}:${brew_version}" - docker push "ghcr.io/homebrew/ubuntu${{matrix.version}}:${brew_version}" - docker tag brew "ghcr.io/homebrew/ubuntu${{matrix.version}}:latest" - docker push "ghcr.io/homebrew/ubuntu${{matrix.version}}:latest" - - - name: Deploy the tagged Docker image to Docker Hub - if: github.event_name == 'release' - run: | - docker tag brew "homebrew/ubuntu${{matrix.version}}:${brew_version}" - docker push "homebrew/ubuntu${{matrix.version}}:${brew_version}" - docker tag brew "homebrew/ubuntu${{matrix.version}}:latest" - docker push "homebrew/ubuntu${{matrix.version}}:latest" - - - name: Deploy the homebrew/brew Docker image to GitHub Packages and Docker Hub - if: github.event_name == 'release' && matrix.version == '22.04' - run: | - docker tag brew "ghcr.io/homebrew/brew:${brew_version}" - docker push "ghcr.io/homebrew/brew:${brew_version}" - docker tag brew "ghcr.io/homebrew/brew:latest" - docker push "ghcr.io/homebrew/brew:latest" - docker tag brew "homebrew/brew:${brew_version}" - docker push "homebrew/brew:${brew_version}" - docker tag brew "homebrew/brew:latest" - docker push "homebrew/brew:latest" - - - name: Deploy the homebrew/ubuntu22.04:master Docker image to GitHub Packages and Docker Hub - if: > - github.event_name == 'push' && github.ref == 'refs/heads/master' && - matrix.version == '22.04' - run: | - docker tag brew "ghcr.io/homebrew/ubuntu22.04:master" - docker push "ghcr.io/homebrew/ubuntu22.04:master" - docker tag brew "homebrew/ubuntu22.04:master" - docker push "homebrew/ubuntu22.04:master" + - name: Deploy the tagged Docker image + if: steps.attributes.outputs.push == 'true' + uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6 + with: + context: . + push: true + tags: ${{ steps.attributes.outputs.tags }} + cache-from: type=gha + cache-to: type=gha,mode=max + build-args: version=${{ matrix.version }} + labels: ${{ steps.attributes.outputs.labels }}