Files
network-tools/.gitea/workflows/release.yaml
T
volker.raschek bf9b4f2f78
Lint Markdown files / markdown-lint (push) Successful in 10s
Release / push-arm64 (push) Successful in 1m13s
Release / push-amd64 (push) Successful in 35s
Release / push-manifest (push) Successful in 13s
Release / sync-to-hub-docker-io (push) Successful in 1m12s
chore(ci): authenticate against harbor.cryptic.systems before pulling binfmt
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.
2026-09-02 20:44:09 +02:00

120 lines
4.1 KiB
YAML

name: Release
on:
push:
branches:
- master
jobs:
push-arm64:
runs-on: ubuntu-latest-arm64
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 \
--platform linux/arm64 \
--provenance false \
--push \
--tag git.cryptic.systems/volker.raschek/network-tools:${TAG}-arm64 \
.
push-amd64:
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 \
--platform linux/amd64 \
--provenance false \
--push \
--tag git.cryptic.systems/volker.raschek/network-tools:${TAG}-amd64 \
.
push-manifest:
runs-on: ubuntu-latest
needs:
- push-arm64
- push-amd64
steps:
- 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 }}
- name: Create and push manifest
run: |
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
docker manifest create git.cryptic.systems/volker.raschek/network-tools:${TAG} \
--amend git.cryptic.systems/volker.raschek/network-tools:${TAG}-amd64 \
--amend git.cryptic.systems/volker.raschek/network-tools:${TAG}-arm64
docker manifest push git.cryptic.systems/volker.raschek/network-tools:${TAG}
sync-to-hub-docker-io:
needs:
- push-manifest
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
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/network-tools:${TAG} \
docker://docker.io/volkerraschek/network-tools:${TAG}