APP_VERSION aus Build-Arg statt Hardcoding im Code
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

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>
This commit is contained in:
Patrick Asmus
2026-09-16 20:32:47 +02:00
co-authored by Claude Opus 4.6
parent 50bb72803f
commit 6d07b12015
4 changed files with 13 additions and 1 deletions
+6
View File
@@ -27,7 +27,10 @@ jobs:
- name: Build and push amd64 image
run: |
SHORT_SHA="${GITHUB_SHA:0:7}"
docker build --pull --platform linux/amd64 \
--build-arg APP_VERSION="dev-${SHORT_SHA}" \
-t "${IMAGE}:dev-amd64" \
-t "${IMAGE}:dev-${GITHUB_SHA}-amd64" \
.
@@ -47,7 +50,10 @@ jobs:
- name: Build and push arm64 image
run: |
SHORT_SHA="${GITHUB_SHA:0:7}"
docker build --pull --platform linux/arm64 \
--build-arg APP_VERSION="dev-${SHORT_SHA}" \
-t "${IMAGE}:dev-arm64" \
-t "${IMAGE}:dev-${GITHUB_SHA}-arm64" \
.
+4
View File
@@ -23,8 +23,10 @@ jobs:
- 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"
@@ -43,8 +45,10 @@ jobs:
- 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"
+2
View File
@@ -15,6 +15,8 @@ COPY bin/config.yml.dist /app/config.yml.dist
RUN mkdir -p /app/data/recordings
ARG APP_VERSION=dev
ENV APP_VERSION=${APP_VERSION}
ENV DATA_DIR=/app/data
ENV STATIC_DIR=/app/frontend/static
ENV PYTHONUNBUFFERED=1
+1 -1
View File
@@ -17,7 +17,7 @@ from models import init_db, get_session, Job, Station, Recording as RecordingMod
from recorder import RecordingManager, format_elapsed
from scheduler import StreamScheduler
APP_VERSION = "3.1.0"
APP_VERSION = os.environ.get("APP_VERSION", "dev")
DATA_DIR = os.environ.get("DATA_DIR", "/app/data")
STATIC_DIR = os.environ.get("STATIC_DIR", "/app/frontend/static")