From 0e5a4f7cf7de5611343cfa7ea0a64a223a9fa3e4 Mon Sep 17 00:00:00 2001 From: Maksim <18454392+silentdigit@users.noreply.github.com> Date: Tue, 10 Dec 2019 21:38:19 +1100 Subject: [PATCH] automating multi-platform builds --- .github/workflows/docker-autobuild.yml | 61 ++++++++++---------------- 1 file changed, 22 insertions(+), 39 deletions(-) diff --git a/.github/workflows/docker-autobuild.yml b/.github/workflows/docker-autobuild.yml index fd4e3b7..1bad6f8 100755 --- a/.github/workflows/docker-autobuild.yml +++ b/.github/workflows/docker-autobuild.yml @@ -4,50 +4,33 @@ on: [push] jobs: - build-upload: + buildx: name: Build Muilti-Platform Image and Upload to Docker Hub runs-on: ubuntu-latest steps: - - - name: Build Docker buildx - run: | - export DOCKER_CLI_EXPERIMENTAL=enabled - export DOCKER_BUILDKIT=1 - docker build --platform=local -o . git://github.com/docker/buildx - mkdir -p ~/.docker/cli-plugins && mv buildx ~/.docker/cli-plugins/docker-buildx + - + name: Checkout Repo + uses: actions/checkout@v1 - - - name: Docker Version - run: | - echo "DOCKER VERSION:" - docker version - echo "BUILDX VERSION:" - docker buildx version + - + name: Setup Docker Buildx + uses: crazy-max/ghaction-docker-buildx@v1 - - - name: Checkout Repo - uses: actions/checkout@v1 + - + name: Available Platforms + run: echo ${{ steps.buildx.outputs.platforms }} - - - name: Create Builder Instance - run: | - docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d - docker buildx create --use --name mybuilder + - + name: Build and Upload + env: + DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }} + run: | + # Variables + TAG=$(date +%y.%m) + NAME=silentdigit/letsencrypt - - - name: Build and Upload - env: - DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }} - run: | - # Variables - TAG=$(date +%y.%m) - NAME=silentdigit/letsencrypt + # Build image as TAG version + docker buildx build -t ${NAME}:${TAG} --platform linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x --push . - # Build image - docker build --tag ${NAME}:${TAG} . - - # Build image as TAG version - docker buildx build -t ${NAME}:${TAG} --platform=linux/arm,linux/arm64,linux/amd64 . --push - - # Build image as latest version - docker buildx build -t ${NAME}:latest --platform=linux/arm,linux/arm64,linux/amd64 . --push + # Build image as latest version + docker buildx build -t ${NAME}:latest --platform linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x --push .