The workflows pulled tonistiigi/binfmt through an unauthenticated request, either directly from docker.io or from harbor.cryptic.systems before any credentials had been configured. Both variants are subject to upstream rate limiting and made the multi arch builds fail sporadically. The docker/login-action steps are now placed in front of docker/setup-qemu-action and docker/setup-buildx-action, and a second login against harbor.cryptic.systems was added so that the binfmt image is always pulled from the internal registry with valid credentials. Leftover setup-qemu-action and setup-buildx-action steps from the previous ordering were removed. All pinned actions were additionally bumped to their latest upstream release to remove the version drift between the repositories.
132 lines
4.5 KiB
YAML
132 lines
4.5 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "**"
|
|
|
|
jobs:
|
|
push-arch-linux:
|
|
runs-on: ubuntu-latest-amd64
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
with:
|
|
registry: git.cryptic.systems
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
|
|
|
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
with:
|
|
registry: harbor.cryptic.systems
|
|
username: ${{ secrets.HARBOR_CRYPTIC_SYSTEMS_USERNAME }}
|
|
password: ${{ secrets.HARBOR_CRYPTIC_SYSTEMS_PASSWORD }}
|
|
|
|
- uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
|
|
with:
|
|
image: harbor.cryptic.systems/docker/tonistiigi/binfmt:latest
|
|
|
|
- uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
|
|
|
|
- name: Build and push image
|
|
run: |
|
|
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
|
|
|
|
docker buildx build \
|
|
--file Dockerfile.archlinux \
|
|
--push \
|
|
--tag git.cryptic.systems/volker.raschek/ansible:${TAG}-archlinux \
|
|
.
|
|
|
|
push-rocky-linux-8:
|
|
runs-on: ubuntu-latest-amd64
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
with:
|
|
registry: git.cryptic.systems
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
|
|
|
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
with:
|
|
registry: harbor.cryptic.systems
|
|
username: ${{ secrets.HARBOR_CRYPTIC_SYSTEMS_USERNAME }}
|
|
password: ${{ secrets.HARBOR_CRYPTIC_SYSTEMS_PASSWORD }}
|
|
|
|
- uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
|
|
with:
|
|
image: harbor.cryptic.systems/docker/tonistiigi/binfmt:latest
|
|
|
|
- uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
|
|
|
|
- name: Build and push image
|
|
run: |
|
|
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
|
|
|
|
docker buildx build \
|
|
--file Dockerfile.rockylinux8 \
|
|
--push \
|
|
--tag git.cryptic.systems/volker.raschek/ansible:${TAG}-rockylinux-8 \
|
|
.
|
|
|
|
push-rocky-linux-9:
|
|
runs-on: ubuntu-latest-amd64
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
with:
|
|
registry: git.cryptic.systems
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
|
|
|
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
with:
|
|
registry: harbor.cryptic.systems
|
|
username: ${{ secrets.HARBOR_CRYPTIC_SYSTEMS_USERNAME }}
|
|
password: ${{ secrets.HARBOR_CRYPTIC_SYSTEMS_PASSWORD }}
|
|
|
|
- uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
|
|
with:
|
|
image: harbor.cryptic.systems/docker/tonistiigi/binfmt:latest
|
|
|
|
- uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
|
|
|
|
- name: Build and push image
|
|
run: |
|
|
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
|
|
|
|
docker buildx build \
|
|
--file Dockerfile.rockylinux9 \
|
|
--push \
|
|
--tag git.cryptic.systems/volker.raschek/ansible:${TAG}-rockylinux-9 \
|
|
.
|
|
|
|
sync-to-hub-docker-io:
|
|
needs:
|
|
- push-arch-linux
|
|
- push-rocky-linux-8
|
|
- push-rocky-linux-9
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Copy images to docker.io
|
|
run: |
|
|
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
|
|
|
|
apt-get update --yes
|
|
apt-get install --yes skopeo
|
|
|
|
for suffix in archlinux rockylinux-8 rockylinux-9; do
|
|
skopeo copy \
|
|
--all \
|
|
--dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \
|
|
--dest-username ${{ secrets.DOCKER_IO_USERNAME }} \
|
|
--src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \
|
|
--src-username volker.raschek \
|
|
docker://git.cryptic.systems/volker.raschek/ansible:${TAG}-${suffix} \
|
|
docker://docker.io/volkerraschek/ansible:${TAG}-${suffix}
|
|
done
|