From 41f52802c505defa80485b299f7e840e4ef588a5 Mon Sep 17 00:00:00 2001 From: Sebastien Baizet Date: Wed, 28 Aug 2024 10:21:24 +0200 Subject: [PATCH] ci: test multi-arch workflow --- .github/workflows/docker-arm64.yaml | 66 +++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/.github/workflows/docker-arm64.yaml b/.github/workflows/docker-arm64.yaml index 5e68adfb0542..96cc9c696bba 100644 --- a/.github/workflows/docker-arm64.yaml +++ b/.github/workflows/docker-arm64.yaml @@ -39,3 +39,69 @@ jobs: file: Dockerfile push: true tags: scrolltech/l2geth:${{inputs.tag}}-arm64 + + build-and-push-amd64-image: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Extract docker metadata + id: meta + uses: docker/metadata-action@v3 + with: + images: scrolltech/l2geth + tags: | + type=ref,event=tag,enable=${{ github.event_name == 'push' }} + type=raw,value=latest,enable=${{ github.event_name == 'release' }} + flavor: | + latest=false + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build docker image + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + push: true + tags: scrolltech/l2geth:${{inputs.tag}}-amd64 + + publish-multi-arch-image: + runs-on: ubuntu-latest + needs: + - build-and-push-amd64-image + - build-and-push-arm64-image + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Extract docker metadata + id: meta + uses: docker/metadata-action@v3 + with: + images: scrolltech/l2geth + tags: | + type=ref,event=tag,enable=${{ github.event_name == 'push' }} + type=raw,value=latest,enable=${{ github.event_name == 'release' }} + flavor: | + latest=false + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build multiarch image + run: | + docker manifest create scrolltech/l2geth:${image_multiarch_name} --amend scrolltech/l2geth:${image_amd64_name} --amend scrolltech/l2geth:${image_arm64_name} && \ + docker manifest push scrolltech/l2geth:${image_multiarch_name} + env: + image_arm64_name: "${{inputs.tag}}-arm64" + image_amd64_name: "${{inputs.tag}}-amd64" + image_multiarch_name: "${{inputs.tag}}-multiarch"