From bb939c61a42a41e90eaf0ab0023deb76796df489 Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Wed, 14 Jul 2021 09:56:26 -0700 Subject: [PATCH] Build with matrix to finish sooner --- .ci/build_amazonlinux_2.base.sh | 3 ++- .ci/build_centos_7.base.sh | 3 ++- .ci/build_centos_8.base.sh | 1 + .ci/build_debian_10.base.sh | 3 ++- .ci/build_fedora_33.base.sh | 3 ++- .ci/build_fedora_34.base.sh | 3 ++- .ci/build_fedora_35.base.sh | 3 ++- .ci/build_ubuntu_18.04.base.sh | 3 ++- .ci/build_ubuntu_20.04.base.sh | 3 ++- .github/workflows/build_base_images.yml | 20 ++++++++++++++++++-- scripts/build_and_push_base_images.sh | 18 ------------------ 11 files changed, 35 insertions(+), 28 deletions(-) diff --git a/.ci/build_amazonlinux_2.base.sh b/.ci/build_amazonlinux_2.base.sh index bbb7a9d21..9f1369e68 100755 --- a/.ci/build_amazonlinux_2.base.sh +++ b/.ci/build_amazonlinux_2.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/amazonlinux:2 \ --build-arg BASE_IMAGE="amazonlinux:2" \ --progress plain \ diff --git a/.ci/build_centos_7.base.sh b/.ci/build_centos_7.base.sh index 5264aeadb..2dd3753a7 100755 --- a/.ci/build_centos_7.base.sh +++ b/.ci/build_centos_7.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/centos:7 \ --build-arg BASE_IMAGE="centos:7" \ --progress plain \ diff --git a/.ci/build_centos_8.base.sh b/.ci/build_centos_8.base.sh index 966a49af5..30b024921 100755 --- a/.ci/build_centos_8.base.sh +++ b/.ci/build_centos_8.base.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ diff --git a/.ci/build_debian_10.base.sh b/.ci/build_debian_10.base.sh index 68bb715a7..b96cf394c 100755 --- a/.ci/build_debian_10.base.sh +++ b/.ci/build_debian_10.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/debian:10 \ --build-arg BASE_IMAGE="debian:10" \ --progress plain \ diff --git a/.ci/build_fedora_33.base.sh b/.ci/build_fedora_33.base.sh index b95df8c06..55489574f 100755 --- a/.ci/build_fedora_33.base.sh +++ b/.ci/build_fedora_33.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/fedora:33 \ --build-arg BASE_IMAGE="fedora:33" \ --progress plain \ diff --git a/.ci/build_fedora_34.base.sh b/.ci/build_fedora_34.base.sh index bdde99a10..4791d3b2c 100755 --- a/.ci/build_fedora_34.base.sh +++ b/.ci/build_fedora_34.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/fedora:34 \ --build-arg BASE_IMAGE="fedora:34" \ --progress plain \ diff --git a/.ci/build_fedora_35.base.sh b/.ci/build_fedora_35.base.sh index 88b28b01b..f11a62fa7 100755 --- a/.ci/build_fedora_35.base.sh +++ b/.ci/build_fedora_35.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/fedora:35 \ --build-arg BASE_IMAGE="fedora:35" \ --progress plain \ diff --git a/.ci/build_ubuntu_18.04.base.sh b/.ci/build_ubuntu_18.04.base.sh index 902ab8fb4..80da55a84 100755 --- a/.ci/build_ubuntu_18.04.base.sh +++ b/.ci/build_ubuntu_18.04.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/ubuntu:18.04 \ --build-arg BASE_IMAGE="ubuntu:18.04" \ --progress plain \ diff --git a/.ci/build_ubuntu_20.04.base.sh b/.ci/build_ubuntu_20.04.base.sh index de7d8dcad..7ad8a513b 100755 --- a/.ci/build_ubuntu_20.04.base.sh +++ b/.ci/build_ubuntu_20.04.base.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +platform="linux/arm64,linux/amd64,linux/arm/v6,linux/arm/v7" docker buildx build \ --no-cache \ --push \ - --platform linux/arm64,linux/amd64 \ + --platform $platform \ --tag ghcr.io/firezone/ubuntu:20.04 \ --build-arg BASE_IMAGE="ubuntu:20.04" \ --progress plain \ diff --git a/.github/workflows/build_base_images.yml b/.github/workflows/build_base_images.yml index 4a4114740..e64cac59f 100644 --- a/.github/workflows/build_base_images.yml +++ b/.github/workflows/build_base_images.yml @@ -6,6 +6,18 @@ on: jobs: build-and-push: + strategy: + matrix: + os: + - amazonlinux_2 + - centos_7 + - centos_8 + - fedora_33 + - fedora_34 + - fedora_35 + - debian_10 + - ubuntu_18.04 + - ubuntu_20.04 runs-on: ubuntu-20.04 steps: - uses: docker/login-action@v1 @@ -15,5 +27,9 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - uses: actions/checkout@v2 - run: | - docker buildx create --use - scripts/build_and_push_base_images.sh + # Required due to a buildx bug. + # See https://github.com/docker/buildx/issues/495#issuecomment-761562905 + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker buildx create --name multiarch --driver docker-container --use + docker buildx inspect --bootstrap + .ci/build_${{ matrix.os }}.base.sh diff --git a/scripts/build_and_push_base_images.sh b/scripts/build_and_push_base_images.sh index 53d4b940b..5cfd691c8 100755 --- a/scripts/build_and_push_base_images.sh +++ b/scripts/build_and_push_base_images.sh @@ -6,30 +6,12 @@ set -e docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx create --name multiarch --driver docker-container --use docker buildx inspect --bootstrap - .ci/build_amazonlinux_2.base.sh -docker push ghcr.io/firezone/amazonlinux:2 - .ci/build_centos_7.base.sh -docker push ghcr.io/firezone/centos:7 - .ci/build_centos_8.base.sh -docker push ghcr.io/firezone/centos:8 - .ci/build_fedora_33.base.sh -docker push ghcr.io/firezone/fedora:33 - .ci/build_fedora_34.base.sh -docker push ghcr.io/firezone/fedora:34 - .ci/build_fedora_35.base.sh -docker push ghcr.io/firezone/fedora:35 - .ci/build_debian_10.base.sh -docker push ghcr.io/firezone/debian:10 - .ci/build_ubuntu_18.04.base.sh -docker push ghcr.io/firezone/ubuntu:18.04 - .ci/build_ubuntu_20.04.base.sh -docker push ghcr.io/firezone/ubuntu:20.04