From 66edaf8a0218fd6823f279c9d150c31303286036 Mon Sep 17 00:00:00 2001 From: Sebastien Baizet Date: Wed, 28 Aug 2024 10:21:24 +0200 Subject: [PATCH 1/2] ci: test multi-arch workflow --- .github/workflows/docker-arm64.yaml | 75 +++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/.github/workflows/docker-arm64.yaml b/.github/workflows/docker-arm64.yaml index 5e68adfb0542..de186af35b9c 100644 --- a/.github/workflows/docker-arm64.yaml +++ b/.github/workflows/docker-arm64.yaml @@ -39,3 +39,78 @@ jobs: file: Dockerfile push: true tags: scrolltech/l2geth:${{inputs.tag}}-arm64 + - name: Build arm64 image + run: | + docker build --platform linux/arm64/v8 -t scrolltech/l2geth:${{inputs.tag}}-arm64 . + docker push 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 + + - name: Build amd64 image + run: | + docker build --platform linux/amd64 -t scrolltech/l2geth:${{inputs.tag}}-amd64 . + docker push 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" From f6cca63503a38527e95d450c5dff112f91b5e839 Mon Sep 17 00:00:00 2001 From: Sebastien Baizet Date: Mon, 2 Sep 2024 09:39:37 +0200 Subject: [PATCH 2/2] add timeout 1440s on workflow arm64 --- .github/workflows/docker-arm64.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-arm64.yaml b/.github/workflows/docker-arm64.yaml index de186af35b9c..9780e0e20a9b 100644 --- a/.github/workflows/docker-arm64.yaml +++ b/.github/workflows/docker-arm64.yaml @@ -9,13 +9,15 @@ on: type: string jobs: + build-and-push-arm64-image: runs-on: ubuntu-latest strategy: matrix: arch: - aarch64 - + timeout-minutes: 1440 + steps: - name: Checkout code uses: actions/checkout@v2