Skip to content

Testing docker multiplatform builds #7

Testing docker multiplatform builds

Testing docker multiplatform builds #7

name: Testing docker multiplatform builds
run-name: Testing docker multiplatform builds
env:
DOCKER_URL: "erigontech/dev-erigon:test-oleksandr"
on:
workflow_dispatch:
jobs:
build-archs:
runs-on: ${{ matrix.runner }}
timeout-minutes: 15
strategy:
matrix:
runner: [ ubuntu-24.04-arm, ubuntu-24.04 ]
include:
- runner: ubuntu-24.04-arm
arch: arm64
docker-tag: arm64
- runner: ubuntu-24.04
arch: amd64/v2
docker-tag: amd64-v2
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}
password: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build docker image for ${{ matrix.arch }}
### --attest type=provenance,mode=max \
run: |
docker buildx build \
--sbom=true \
--provenance false \
--push --platform linux/${{ matrix.arch }} \
--progress plain \
-t ${{ env.DOCKER_URL }}-${{ matrix.docker-tag }} -f Dockerfile-mp .
build-final-image:
needs: [ build-archs ]
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}
password: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build multiplatform image
run: |
docker manifest create \
${{ env.DOCKER_URL }} \
--amend ${{ env.DOCKER_URL }}-amd64-v2 \
--amend ${{ env.DOCKER_URL }}-arm64
docker manifest push ${{ env.DOCKER_URL }}