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>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
50bb72803f
commit
6d07b12015
@@ -27,7 +27,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push amd64 image
|
- name: Build and push amd64 image
|
||||||
run: |
|
run: |
|
||||||
|
SHORT_SHA="${GITHUB_SHA:0:7}"
|
||||||
|
|
||||||
docker build --pull --platform linux/amd64 \
|
docker build --pull --platform linux/amd64 \
|
||||||
|
--build-arg APP_VERSION="dev-${SHORT_SHA}" \
|
||||||
-t "${IMAGE}:dev-amd64" \
|
-t "${IMAGE}:dev-amd64" \
|
||||||
-t "${IMAGE}:dev-${GITHUB_SHA}-amd64" \
|
-t "${IMAGE}:dev-${GITHUB_SHA}-amd64" \
|
||||||
.
|
.
|
||||||
@@ -47,7 +50,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push arm64 image
|
- name: Build and push arm64 image
|
||||||
run: |
|
run: |
|
||||||
|
SHORT_SHA="${GITHUB_SHA:0:7}"
|
||||||
|
|
||||||
docker build --pull --platform linux/arm64 \
|
docker build --pull --platform linux/arm64 \
|
||||||
|
--build-arg APP_VERSION="dev-${SHORT_SHA}" \
|
||||||
-t "${IMAGE}:dev-arm64" \
|
-t "${IMAGE}:dev-arm64" \
|
||||||
-t "${IMAGE}:dev-${GITHUB_SHA}-arm64" \
|
-t "${IMAGE}:dev-${GITHUB_SHA}-arm64" \
|
||||||
.
|
.
|
||||||
|
|||||||
@@ -23,8 +23,10 @@ jobs:
|
|||||||
- name: Build and push amd64 release image
|
- name: Build and push amd64 release image
|
||||||
run: |
|
run: |
|
||||||
RELEASE_TAG="${GITHUB_REF_NAME}"
|
RELEASE_TAG="${GITHUB_REF_NAME}"
|
||||||
|
VERSION="${RELEASE_TAG#v}"
|
||||||
|
|
||||||
docker build --pull --platform linux/amd64 \
|
docker build --pull --platform linux/amd64 \
|
||||||
|
--build-arg APP_VERSION="${VERSION}" \
|
||||||
-t "${IMAGE}:${RELEASE_TAG}-amd64" \
|
-t "${IMAGE}:${RELEASE_TAG}-amd64" \
|
||||||
.
|
.
|
||||||
docker push "${IMAGE}:${RELEASE_TAG}-amd64"
|
docker push "${IMAGE}:${RELEASE_TAG}-amd64"
|
||||||
@@ -43,8 +45,10 @@ jobs:
|
|||||||
- name: Build and push arm64 release image
|
- name: Build and push arm64 release image
|
||||||
run: |
|
run: |
|
||||||
RELEASE_TAG="${GITHUB_REF_NAME}"
|
RELEASE_TAG="${GITHUB_REF_NAME}"
|
||||||
|
VERSION="${RELEASE_TAG#v}"
|
||||||
|
|
||||||
docker build --pull --platform linux/arm64 \
|
docker build --pull --platform linux/arm64 \
|
||||||
|
--build-arg APP_VERSION="${VERSION}" \
|
||||||
-t "${IMAGE}:${RELEASE_TAG}-arm64" \
|
-t "${IMAGE}:${RELEASE_TAG}-arm64" \
|
||||||
.
|
.
|
||||||
docker push "${IMAGE}:${RELEASE_TAG}-arm64"
|
docker push "${IMAGE}:${RELEASE_TAG}-arm64"
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ COPY bin/config.yml.dist /app/config.yml.dist
|
|||||||
|
|
||||||
RUN mkdir -p /app/data/recordings
|
RUN mkdir -p /app/data/recordings
|
||||||
|
|
||||||
|
ARG APP_VERSION=dev
|
||||||
|
ENV APP_VERSION=${APP_VERSION}
|
||||||
ENV DATA_DIR=/app/data
|
ENV DATA_DIR=/app/data
|
||||||
ENV STATIC_DIR=/app/frontend/static
|
ENV STATIC_DIR=/app/frontend/static
|
||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ from models import init_db, get_session, Job, Station, Recording as RecordingMod
|
|||||||
from recorder import RecordingManager, format_elapsed
|
from recorder import RecordingManager, format_elapsed
|
||||||
from scheduler import StreamScheduler
|
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")
|
DATA_DIR = os.environ.get("DATA_DIR", "/app/data")
|
||||||
STATIC_DIR = os.environ.get("STATIC_DIR", "/app/frontend/static")
|
STATIC_DIR = os.environ.get("STATIC_DIR", "/app/frontend/static")
|
||||||
|
|||||||
Reference in New Issue
Block a user