feat: commit-hash in UI + korb vor downloads
This commit is contained in:
1 parent
356b1f9a7c
commit
008c713840
7 files changed
+17
-7
No files matched your search
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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")
|
||||
|
||||
@@ -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"}
|
||||
@@ -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,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>
|
||||
|
||||
Reference in new issue
Block a user