Files
docker-compose-docker/.gitea/workflows/auto-release.yaml
T
volker.raschek bd329a36f9
Lint Markdown files / markdown-lint (push) Successful in 11s
Release latest / push-arm64 (push) Successful in 2m10s
Release latest / push-amd64 (push) Successful in 1m11s
Release latest / push-manifest (push) Successful in 16s
Release latest / sync-to-hub-docker-io (push) Successful in 1m25s
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

74 lines
2.3 KiB
YAML

name: Auto release tagged
on:
push:
branches: [ "master" ]
paths:
- Dockerfile
env:
GIT_EMAIL: noreply@cryptic.systems
GIT_USER: CSRBot
jobs:
tag_on_change:
permissions:
actions: write
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Check if DC_VERSION line changed
id: check_change
run: |
echo "changed=false" >> $GITHUB_OUTPUT
for file in Dockerfile; do
if git diff HEAD~1 HEAD -- "${file}" | grep --quiet '^[+-]ARG DC_VERSION'; then
echo "DC_VERSION line changed."
echo "changed=true" >> $GITHUB_OUTPUT
break
fi
done
- name: Stop if no change detected
if: steps.check_change.outputs.changed == 'false'
run: echo "No DC_VERSION change. Exiting..."
- name: Create and push new tag
id: create_tag
if: steps.check_change.outputs.changed == 'true'
run: |
defined_tag="$(grep --only-matching --perl-regexp 'ARG DC_VERSION=v?[\d]*(\.[\d]*){0,2}' Dockerfile | head --lines 1 | cut --delimiter='=' --fields=2)"
echo "defined_tag=${defined_tag}" >> $GITHUB_OUTPUT
echo "New tag: ${defined_tag}"
git config --local user.name "${GIT_USER}"
git config --local user.email "${GIT_EMAIL}"
git tag -a "${defined_tag}" -m "${defined_tag}"
git push origin "${defined_tag}"
- name: Trigger "Push tagged images" workflow
if: steps.check_change.outputs.changed == 'true'
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const workflowFileName = 'release-tagged.yaml';
const defaultBranch = context.payload.repository.default_branch;
const definedTag = '${{ steps.create_tag.outputs.defined_tag }}';
await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: workflowFileName,
ref: defaultBranch,
inputs: {
tag: definedTag
}
});