From 927405bab3cafd79b5b8f53039c49478a0aad01f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Uhl=C3=AD=C5=99?= Date: Mon, 9 May 2022 11:30:06 +0200 Subject: [PATCH] feat: multiarch builds (#99) --- .github/workflows/publish.yaml | 10 ++++++++++ generator/scripts/bee-docker-build.sh | 9 ++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 6f50455..308daa2 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -31,6 +31,7 @@ env: COMMIT_VERSION_TAG: 'false' STATE_COMMIT: 'true' BEE_VERSION: '${{ github.event.client_payload.tag }}' + BEE_PLATFORM: 'linux/amd64,linux/arm64,linux/arm/v7' jobs: bee-images: @@ -45,6 +46,15 @@ jobs: - name: Checkout uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + - name: Override inputs from `workflow_dispatch` run: | if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then diff --git a/generator/scripts/bee-docker-build.sh b/generator/scripts/bee-docker-build.sh index f22fcdf..5d7d69e 100755 --- a/generator/scripts/bee-docker-build.sh +++ b/generator/scripts/bee-docker-build.sh @@ -11,10 +11,17 @@ DOCKERFILE dockerbuild() { BLOCKCHAIN_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BLOCKCHAIN_VERSION) + PLATFORM_FLAG="" + + if [ -n "$BEE_PLATFORM" ]; then + # Multiplatform build needs to push the images right away as docker buildx does not output images loaded into + # docker itself, or it can do that but only for one platform. + PLATFORM_FLAG="--platform=$BEE_PLATFORM --push" + fi IMAGE_NAME=$(basename "$1") IMAGE_NAME="$4/$IMAGE_NAME" - docker build "$1" --no-cache -f "$2" -t "$IMAGE_NAME:$3" --label "org.ethswarm.beefactory.blockchain-version=$BLOCKCHAIN_VERSION" + docker build "$1" --no-cache -f "$2" -t "$IMAGE_NAME:$3" $PLATFORM_FLAG --label "org.ethswarm.beefactory.blockchain-version=$BLOCKCHAIN_VERSION" } MY_PATH=$(dirname "$0")