Browse Source

Matrixify the docker image build

new-http-api
itchymax 3 years ago
parent
commit
626435e907
  1. 39
      .github/workflows/build-release-binary.yml
  2. 39
      .github/workflows/release-docker.yml

39
.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}} \
.

39
.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 \
.

Loading…
Cancel
Save