From 626435e9074a959c67b29ec9c0e183e4518fcbe7 Mon Sep 17 00:00:00 2001 From: itchymax Date: Thu, 11 Nov 2021 16:57:08 +1100 Subject: [PATCH] Matrixify the docker image build --- .github/workflows/build-release-binary.yml | 39 +++++++--------------- .github/workflows/release-docker.yml | 39 ++++++---------------- 2 files changed, 22 insertions(+), 56 deletions(-) diff --git a/.github/workflows/build-release-binary.yml b/.github/workflows/build-release-binary.yml index 5ed3d95..a0fd0ff 100644 --- a/.github/workflows/build-release-binary.yml +++ b/.github/workflows/build-release-binary.yml @@ -154,6 +154,11 @@ jobs: permissions: contents: read packages: write + strategy: + matrix: + include: + - bin: maker + - bin: taker env: GITHUB_TOKEN: ${{ secrets.ITCHY_GITHUB_TOKEN }} steps: @@ -176,7 +181,7 @@ jobs: - name: Download release from github run: | - gh release download ${{ github.event.release.tag_name }} -p '*Linux_x86_64*' -p '*aarch64*' -p '*armv7*' + gh release download ${{ github.event.release.tag_name }} -p '${{matrix.bin}}*Linux_x86_64*' -p '${{matrix.bin}}*aarch64*' -p '${{matrix.bin}}*armv7*' - name: Unpack archives run: | @@ -186,33 +191,13 @@ jobs: # when building the image. This variable is either # `linux/amd64/`, `linux/arm64/` or `linux/arm/v7`. Hence we need to extract into subfolders. - 7z x maker_${{ github.event.release.tag_name }}_Linux_aarch64.tar -olinux/arm64/ - 7z x taker_${{ github.event.release.tag_name }}_Linux_aarch64.tar -olinux/arm64/ - - 7z x maker_${{ github.event.release.tag_name }}_Linux_x86_64.tar -olinux/amd64/ - 7z x taker_${{ github.event.release.tag_name }}_Linux_x86_64.tar -olinux/amd64/ - - 7z x maker_${{ github.event.release.tag_name }}_Linux_armv7.tar -olinux/arm/v7 - 7z x taker_${{ github.event.release.tag_name }}_Linux_armv7.tar -olinux/arm/v7 - - - name: Build maker docker image - run: | - VERSION=${{ github.event.release.tag_name }} + 7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_aarch64.tar -olinux/arm64/ - if [ "$VERSION" = "preview" ]; then - VERSION=latest - fi - - docker buildx build \ - --push \ - --platform linux/amd64,linux/arm64,linux/arm/v7 \ - --label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \ - --tag ghcr.io/${{ github.repository }}/maker:${VERSION} \ - --build-arg BINARY_PATH=maker \ - . + 7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_x86_64.tar -olinux/amd64/ + 7z x ${{matrix.bin}}_${{ github.event.release.tag_name }}_Linux_armv7.tar -olinux/arm/v7 - - name: Build taker docker image + - name: Build docker image for ${{matrix.bin}} run: | VERSION=${{ github.event.release.tag_name }} @@ -224,6 +209,6 @@ jobs: --push \ --platform linux/amd64,linux/arm64,linux/arm/v7 \ --label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \ - --tag ghcr.io/${{ github.repository }}/taker:${VERSION} \ - --build-arg BINARY_PATH=taker \ + --tag ghcr.io/${{ github.repository }}/${{matrix.bin}}:${VERSION} \ + --build-arg BINARY_PATH=${{matrix.bin}} \ . diff --git a/.github/workflows/release-docker.yml b/.github/workflows/release-docker.yml index cd50ad8..9b23402 100644 --- a/.github/workflows/release-docker.yml +++ b/.github/workflows/release-docker.yml @@ -15,6 +15,9 @@ jobs: permissions: contents: read packages: write + strategy: + matrix: + bin: [maker,taker] env: GITHUB_TOKEN: ${{ secrets.ITCHY_GITHUB_TOKEN }} steps: @@ -37,7 +40,7 @@ jobs: - name: Download release run: | - gh release download ${{ github.event.inputs.release_tag }} -p '*Linux_x86_64*' -p '*aarch64*' -p '*armv7*' + gh release download ${{ github.event.inputs.release_tag }} -p '${{matrix.bin}}*Linux_x86_64*' -p '${{matrix.bin}}*aarch64*' -p '${{matrix.bin}}*armv7*' - name: Unpack archives run: | @@ -47,16 +50,13 @@ jobs: # when building the image. This variable is either # `linux/amd64/`, `linux/arm64/` or `linux/arm/v7`. Hence we need to extract into subfolders. - 7z x maker_${{ github.event.inputs.release_tag }}_Linux_aarch64.tar -olinux/arm64/ - 7z x taker_${{ github.event.inputs.release_tag }}_Linux_aarch64.tar -olinux/arm64/ + 7z x ${{matrix.bin}}_${{ github.event.inputs.release_tag }}_Linux_aarch64.tar -olinux/arm64/ - 7z x maker_${{ github.event.inputs.release_tag }}_Linux_x86_64.tar -olinux/amd64/ - 7z x taker_${{ github.event.inputs.release_tag }}_Linux_x86_64.tar -olinux/amd64/ + 7z x ${{matrix.bin}}_${{ github.event.inputs.release_tag }}_Linux_x86_64.tar -olinux/amd64/ - 7z x maker_${{ github.event.inputs.release_tag }}_Linux_armv7.tar -olinux/arm/v7 - 7z x taker_${{ github.event.inputs.release_tag }}_Linux_armv7.tar -olinux/arm/v7 + 7z x ${{matrix.bin}}_${{ github.event.inputs.release_tag }}_Linux_armv7.tar -olinux/arm/v7 - - name: Build maker docker image + - name: Build docker image for ${{matrix.bin}} run: | VERSION=${{ github.event.inputs.release_tag }} @@ -68,25 +68,6 @@ jobs: --push \ --platform linux/amd64,linux/arm64,linux/arm/v7 \ --label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \ - --tag ghcr.io/${{ github.repository }}/maker:${VERSION} \ - --build-arg BINARY_PATH=maker \ + --tag ghcr.io/${{ github.repository }}/${{matrix.bin}}:${VERSION} \ + --build-arg BINARY_PATH=${{matrix.bin}} \ . - - - - name: Build taker docker image - run: | - VERSION=${{ github.event.release.tag_name }} - - if [ "$VERSION" = "preview" ]; then - VERSION=latest - fi - - docker buildx build \ - --push \ - --platform linux/amd64,linux/arm64,linux/arm/v7 \ - --label "org.opencontainers.image.source https://github.com/${{ github.repository }}" \ - --tag ghcr.io/${{ github.repository }}/taker:${VERSION} \ - --build-arg BINARY_PATH=taker \ - . - -