@ -14,52 +14,42 @@ jobs:
target : x86_64-unknown-linux-gnu
os : ubuntu-latest
archive_ext : tar
docker_platforms : linux/amd64
- bin : taker
target : armv7-unknown-linux-gnueabihf
os : ubuntu-latest
archive_ext : tar
docker_platforms : linux/arm/v7
- bin : taker
target : aarch64-unknown-linux-gnu
os : ubuntu-latest
archive_ext : tar
docker_platforms : linux/arm64
- bin : taker
target : x86_64-apple-darwin
os : macos-latest
archive_ext : tar
docker_platforms : None
- bin : taker
target : x86_64-pc-windows-msvc
os : windows-latest
archive_ext : zip
docker_platforms : None
- bin : maker
target : x86_64-unknown-linux-gnu
os : ubuntu-latest
archive_ext : tar
docker_platforms : linux/amd64
- bin : maker
target : armv7-unknown-linux-gnueabihf
os : ubuntu-latest
archive_ext : tar
docker_platforms : linux/arm64
- bin : maker
target : aarch64-unknown-linux-gnu
os : ubuntu-latest
archive_ext : tar
docker_platforms : linux/arm64
- bin : maker
target : x86_64-apple-darwin
os : macos-latest
archive_ext : tar
docker_platforms : None
- bin : maker
target : x86_64-pc-windows-msvc
os : windows-latest
archive_ext : zip
docker_platforms : None
runs-on : ${{ matrix.os }}
steps:
- name : Checkout tagged commit
@ -155,28 +145,65 @@ jobs:
asset_name : ${{ steps.create-archive-name.outputs.archive }}
asset_content_type : application/gzip
build_docker_image:
needs : build_binaries
name : Build docker images
runs-on : ubuntu-latest
env:
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
steps:
- name : Checkout tagged commit
uses : actions/checkout@v2.3.4
with:
ref : ${{ github.event.release.target_commitish }}
- name : Set up QEMU
if : matrix.os != 'windows-latest' && matrix.os != 'macos-latest'
uses : docker/setup-qemu-action@v1
- name : Set up Docker Buildx
if : matrix.os != 'windows-latest' && matrix.os != 'macos-latest'
- name : Set up docker buildx
uses : docker/setup-buildx-action@v1
- name : Login into github registry
uses : docker/login-action@v1.10.0
if : matrix.os != 'windows-latest' && matrix.os != 'macos-latest'
with:
registry : ghcr.io
username : ${{ github.acto r }}
username : ${{ github.repository_owne r }}
password : ${{ secrets.GITHUB_TOKEN }}
- name : Build and publish docker image
if : matrix.os != 'windows-latest' && matrix.os != 'macos-latest'
- name : Build and publish docker images
run : |
gh release download ${{ github.event.release.tag_name }} -p '*Linux_x86_64*' -p '*aarch64*' -p '*armv7*'
# We need to extract into sub folders to so that our dockerimage can fine the binaries.
#
# By providing `platform` to `docker buildx` the variable `TARGETPLATFORM` will be available
# 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
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:${{ github.event.release.tag_name }} \
--build-arg BINARY_PATH=maker \
.
docker buildx build \
--push \
--platform=${{ matrix.docker_platforms }} \
--tag ghcr.io/${{ github.actor }}/hermes-${{ matrix.bin }}-${{ matrix.target }} \
--build-arg BINARY_PATH=target/${{ matrix.target }}/release/${{ matrix.bin }} \
.
--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:${{ github.event.release.tag_name }} \
--build-arg BINARY_PATH=taker \
.