feat: commit-hash in UI + korb vor downloads
CI / backend-tests (push) Successful in 11s
Docker images / backend (push) Successful in 8s
Docker images / frontend (push) Successful in 25s
CI / docker (push) Successful in 3s

This commit is contained in:
loki committed 2026-10-04 14:55:02 +02:00
1 parent 356b1f9a7c
commit 008c713840
7 files changed
+17 -7

No files matched your search

+1
View File
@@ -27,6 +27,7 @@ jobs:
push: true
build-args: |
VERSION=latest
GIT_SHA=${{ gitea.sha }}
tags: |
${{ env.REGISTRY }}/${{ gitea.repository_owner }}/streamrip-ui-backend:latest
+3
View File
@@ -28,6 +28,9 @@ RUN chown -R appuser:appuser /app
ARG VERSION=dev
ENV APP_VERSION=$VERSION
ARG GIT_SHA=dev
ENV APP_COMMIT=$GIT_SHA
USER appuser
EXPOSE 8000
+1
View File
@@ -10,6 +10,7 @@ DOWNLOAD_DIR = os.environ.get(
"STREAMRIP_DOWNLOAD_DIR", str(Path.home() / "StreamripDownloads")
)
APP_VERSION = os.environ.get("APP_VERSION", "dev")
APP_COMMIT = os.environ.get("APP_COMMIT", "dev")
DEFAULT_QUALITY = int(os.environ.get("STREAMRIP_DEFAULT_QUALITY", "2"))
DEFAULT_CODEC = os.environ.get("STREAMRIP_DEFAULT_CODEC", "")
SOURCES = ["deezer"]
+1 -1
View File
@@ -45,7 +45,7 @@ def health():
@app.get("/api/version")
def version():
return {"version": settings.APP_VERSION}
return {"version": settings.APP_VERSION, "commit": settings.APP_COMMIT}
@app.get("/api/sources")
+2 -1
View File
@@ -20,7 +20,8 @@ def test_version_endpoint(monkeypatch):
from app.core import settings
monkeypatch.setattr(settings, "APP_VERSION", "2026.10.04.7")
monkeypatch.setattr(settings, "APP_COMMIT", "abc1234")
c = TestClient(app)
r = c.get("/api/version")
assert r.status_code == 200
assert r.json() == {"version": "2026.10.04.7"}
assert r.json() == {"version": "2026.10.04.7", "commit": "abc1234"}
+1
View File
@@ -6,6 +6,7 @@ services:
UID: ${UID:-1000}
GID: ${GID:-1000}
VERSION: ${APP_VERSION:-dev}
GIT_SHA: ${GIT_SHA:-dev}
ports:
- "${BACKEND_HOST_PORT:-8000}:${BACKEND_PORT:-8000}"
environment:
+8 -5
View File
@@ -8,8 +8,8 @@ import { loadBasket } from "../lib/basket";
const NAV = [
{ href: "/", label: "Suche" },
{ href: "/discover", label: "Entdecken" },
{ href: "/downloads", label: "Downloads" },
{ href: "/basket", label: "Korb" },
{ href: "/downloads", label: "Downloads" },
{ href: "/settings", label: "Einstellungen" },
];
@@ -17,6 +17,7 @@ export default function Header() {
const pathname = usePathname();
const [backendOk, setBackendOk] = useState<boolean | null>(null);
const [appVersion, setAppVersion] = useState("");
const [appCommit, setAppCommit] = useState("");
const [theme, setTheme] = useState<"dark" | "light">("dark");
const [basketCount, setBasketCount] = useState(0);
@@ -65,7 +66,9 @@ export default function Header() {
fetch("/api/version")
.then((r) => r.json())
.then((b) => {
if (alive && b?.version) setAppVersion(b.version);
if (!alive) return;
if (b?.version) setAppVersion(b.version);
if (b?.commit) setAppCommit(String(b.commit).slice(0, 7));
})
.catch(() => {});
return () => {
@@ -107,9 +110,9 @@ export default function Header() {
}}
/>
<span style={{ fontWeight: 700, fontSize: 18, letterSpacing: "-0.01em" }}>streamrip-ui</span>
{appVersion && (
<span className="muted" style={{ fontSize: 12 }} title="App-Version">
v{appVersion}
{(appVersion || appCommit) && (
<span className="muted" style={{ fontSize: 12 }} title={appCommit ? `Commit ${appCommit}` : "App-Version"}>
v{appVersion}{appCommit ? ` · ${appCommit}` : ""}
</span>
)}
</Link>