Files
stream-recorder/.gitea/workflows/docker-release.yaml
T
Patrick AsmusandClaude Opus 4.6 6d07b12015
Build Release Docker Image / build-amd64 (release) Successful in 8s
Build Release Docker Image / build-arm64 (release) Successful in 14s
Build Release Docker Image / publish-release-manifest (release) Successful in 9s
APP_VERSION aus Build-Arg statt Hardcoding im Code
Version wird jetzt beim Docker-Build per --build-arg injiziert.
Release-Workflow leitet sie aus dem Tag-Namen ab, Dev-Workflow
nutzt den Short-SHA. Verhindert Version-Mismatch bei Releases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-09-16 20:32:47 +02:00

78 lines
2.4 KiB
YAML

name: Build Release Docker Image
on:
release:
types: [published]
env:
REGISTRY: git.techniverse.net
IMAGE: git.techniverse.net/scriptos/stream-recorder
jobs:
build-amd64:
runs-on: linux-amd64
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Login to Gitea Container Registry
run: echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY}" -u "${GITHUB_ACTOR}" --password-stdin
env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push amd64 release image
run: |
RELEASE_TAG="${GITHUB_REF_NAME}"
VERSION="${RELEASE_TAG#v}"
docker build --pull --platform linux/amd64 \
--build-arg APP_VERSION="${VERSION}" \
-t "${IMAGE}:${RELEASE_TAG}-amd64" \
.
docker push "${IMAGE}:${RELEASE_TAG}-amd64"
build-arm64:
runs-on: linux-arm64
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Login to Gitea Container Registry
run: echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY}" -u "${GITHUB_ACTOR}" --password-stdin
env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push arm64 release image
run: |
RELEASE_TAG="${GITHUB_REF_NAME}"
VERSION="${RELEASE_TAG#v}"
docker build --pull --platform linux/arm64 \
--build-arg APP_VERSION="${VERSION}" \
-t "${IMAGE}:${RELEASE_TAG}-arm64" \
.
docker push "${IMAGE}:${RELEASE_TAG}-arm64"
publish-release-manifest:
runs-on: linux-amd64
needs: [build-amd64, build-arm64]
steps:
- name: Login to Gitea Container Registry
run: echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY}" -u "${GITHUB_ACTOR}" --password-stdin
env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
- name: Publish release manifests
run: |
RELEASE_TAG="${GITHUB_REF_NAME}"
docker manifest create "${IMAGE}:${RELEASE_TAG}" \
--amend "${IMAGE}:${RELEASE_TAG}-amd64" \
--amend "${IMAGE}:${RELEASE_TAG}-arm64"
docker manifest push "${IMAGE}:${RELEASE_TAG}"
docker manifest create "${IMAGE}:latest" \
--amend "${IMAGE}:${RELEASE_TAG}-amd64" \
--amend "${IMAGE}:${RELEASE_TAG}-arm64"
docker manifest push "${IMAGE}:latest"