From f56c0af5bab33ab6aee72eae077db8c48c362552 Mon Sep 17 00:00:00 2001 From: albttx Date: Thu, 13 Jun 2024 11:14:49 +0200 Subject: [PATCH] chore(ci): fix docker workflow --- .github/workflows/docker.yml | 95 ++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 53 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c0c0dd16f97..1e5464d06cb 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,116 +1,105 @@ +# This workflow only build the docker images as a test. +# This images are not published, check Dockerfile.release for this. +# This images are only for dev/local purpose. name: docker on: - pull_request: - paths: - - "**" - - "misc/loop" - - "!misc/**" - - "!docs/**" - - "!**.md" push: - branches: ["master"] + branches: + - "master" + - "ci/docker-cache" concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: - build-main: + build-docker-image-main: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Get commit SHA - id: commit - run: echo "sha=${GITHUB_SHA::8}" >> "$GITHUB_OUTPUT" - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: (github.event_name != 'pull_request') - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Go Build Cache for Docker uses: actions/cache@v3 with: path: go-build-cache key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go-build-cache- - name: inject go-build-cache into docker - # v1 was composed of two actions: "inject" and "extract". - # v2 is unified to a single action. - uses: reproducible-containers/buildkit-cache-dance@v2.1.2 + uses: reproducible-containers/buildkit-cache-dance@v3.1.0 with: cache-source: go-build-cache + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository }} + tags: | + type=raw,value=latest + - name: Build and push uses: docker/build-push-action@v5 with: context: . platforms: linux/amd64,linux/arm64 - push: ${{ github.event_name != 'pull_request' }} + push: false cache-from: type=gha cache-to: type=gha,mode=max - tags: | - ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:latest - ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:${{ steps.commit.outputs.sha }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} - build-slim: + build-docker-images: runs-on: ubuntu-latest + needs: build-docker-image-main strategy: matrix: target: - [gnoland-slim, gnokey-slim, gno-slim, gnofaucet-slim, gnoweb-slim] + - gnoland + - gnokey + - gno + - gnoweb steps: - name: Checkout uses: actions/checkout@v4 - - name: Get commit SHA - id: commit - run: echo "sha=${GITHUB_SHA::8}" >> "$GITHUB_OUTPUT" - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - if: (github.event_name != 'pull_request') - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Go Build Cache for Docker uses: actions/cache@v3 with: path: go-build-cache key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go-build-cache- - name: inject go-build-cache into docker - # v1 was composed of two actions: "inject" and "extract". - # v2 is unified to a single action. - uses: reproducible-containers/buildkit-cache-dance@v2.1.2 + uses: reproducible-containers/buildkit-cache-dance@v3.1.0 with: cache-source: go-build-cache + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository }} + tags: | + type=raw,value=latest + - name: Build and push uses: docker/build-push-action@v5 with: context: . - platforms: linux/amd64,linux/arm64 target: ${{ matrix.target }} + platforms: linux/amd64,linux/arm64 + push: false cache-from: type=gha cache-to: type=gha,mode=max - push: ${{ github.event_name != 'pull_request' }} - tags: | - ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/${{ matrix.target }}:latest - ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/${{ matrix.target }}:${{ steps.commit.outputs.sha }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }}