From d5f35731ccd005003a26c0c7e5bcb6ac09270b41 Mon Sep 17 00:00:00 2001 From: anthony sottile Date: Mon, 5 Feb 2024 15:57:11 -0500 Subject: [PATCH] better leverage docker image build caching --- .github/workflows/image.yml | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/.github/workflows/image.yml b/.github/workflows/image.yml index 86054c5..28c77a4 100644 --- a/.github/workflows/image.yml +++ b/.github/workflows/image.yml @@ -15,29 +15,22 @@ jobs: strategy: matrix: arch: [amd64, arm64] - env: - TARGET_TAG: ghcr.io/getsentry/pypi-manylinux-${{ matrix.arch }}-ci runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: enable cross build run: docker run --rm --privileged tonistiigi/binfmt --install arm64 if: matrix.arch == 'arm64' + - name: login + run: docker login --username '${{ github.actor }}' --password-stdin ghcr.io <<< '${{ secrets.GITHUB_TOKEN }}' + if: github.event_name == 'push' && github.ref == 'refs/heads/main' - name: build run: | - args=() - if docker pull -q "$TARGET_TAG"; then - args+=(--cache-from "$TARGET_TAG") - fi docker buildx build \ - "${args[@]}" \ + --cache-from ghcr.io/getsentry/pypi-manylinux-${{ matrix.arch }}-ci:latest \ + --cache-to type=inline \ --platform linux/${{ matrix.arch }} \ - --tag "${TARGET_TAG}:${GITHUB_SHA}" \ + --tag ghcr.io/getsentry/pypi-manylinux-${{ matrix.arch }}-ci:${{ github.sha }} \ + --tag ghcr.io/getsentry/pypi-manylinux-${{ matrix.arch }}-ci:latest \ + ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && '--push' || '' }} \ docker - docker tag "${TARGET_TAG}:${GITHUB_SHA}" "${TARGET_TAG}:latest" - - name: push - run: | - docker login --username '${{ github.actor }}' --password-stdin ghcr.io <<< '${{ secrets.GITHUB_TOKEN }}' - docker push "${TARGET_TAG}:${GITHUB_SHA}" - docker push "${TARGET_TAG}:latest" - if: github.event_name != 'pull_request'