Compare commits

...

4 Commits

Author SHA1 Message Date
ce416f3b9a ci: release.yml nur noch Docker-Build (Release macht release.sh)
All checks were successful
Nightly Build / build (push) Successful in 3m43s
- "Create Gitea Release"-Step entfernt → keine doppelte Release-Erstellung
  mehr (release.sh legt Release + englischen Auto-Changelog + Assets an).
- Image-Tag strippt fuehrendes 'v' (VERSION-Datei hat keins).
- Tag-Pattern auf 'v*' erweitert (vorher matchte v0.9.x.y-Hotfixes nicht).
2026-06-26 23:45:23 +02:00
67c013f4ff nightly: 0.9.27-nightly9
All checks were successful
Nightly Build / build (push) Successful in 3m41s
2026-06-26 23:19:02 +02:00
40f85b1eb6 nightly: 0.9.27-nightly8 2026-06-26 23:10:27 +02:00
54ce101f99 ci: Changelog aus CHANGES.md lesen (von release.sh aus Dev-Repo generiert) 2026-06-26 23:10:22 +02:00
5 changed files with 52 additions and 47 deletions

View File

@@ -85,34 +85,18 @@ jobs:
git config user.name "gitea-actions"
git config user.email "actions@it-drui.de"
# Letzten stabilen Release-Tag finden (v* ohne nightly) als Changelog-Basis
git fetch --tags origin 2>/dev/null || true
PREV_TAG=$(git tag | grep -E '^v[0-9]+\.' | sort -V | tail -1)
# Fallback: letzter nightly-Tag
[ -z "$PREV_TAG" ] && PREV_TAG=$(git tag | grep '^nightly-' | sort | tail -1)
# Commits seit letztem stabilen Tag — chore/ci-Commits herausfiltern
if [ -n "$PREV_TAG" ]; then
COMMITS=$(git log "${PREV_TAG}..HEAD" --pretty=format:"- %s" --no-merges 2>/dev/null \
| grep -v '^- chore: nightly' \
| grep -v '^- ci:' \
|| true)
else
COMMITS=$(git log --pretty=format:"- %s" --no-merges -30 2>/dev/null \
| grep -v '^- chore: nightly' \
| grep -v '^- ci:' \
|| true)
fi
[ -z "$COMMITS" ] && COMMITS="- Automatischer Nightly-Build (keine neuen Features seit ${PREV_TAG})"
# Body in Temp-Datei (vermeidet YAML-Probleme mit Sonderzeichen wie > oder ```)
# Changelog aus CHANGES.md lesen (wird von release.sh aus dem Dev-Repo generiert)
BODY_FILE=$(mktemp)
printf '## KX-Bridge %s -- Nightly Build\n\n' "$VERSION" > "$BODY_FILE"
printf '[experimentell] Ungetestete Features, nur fuer Tester geeignet.\n\n' >> "$BODY_FILE"
printf '### Aenderungen seit `%s`\n\n' "${PREV_TAG:-erstem Commit}" >> "$BODY_FILE"
printf '%s\n\n---\n\n' "$COMMITS" >> "$BODY_FILE"
printf '### Docker-Image aktualisieren\n\n```bash\ndocker compose pull && docker compose up -d\n```\n\n' >> "$BODY_FILE"
printf 'Image-Tag: `gitea.it-drui.de/viewit/kx-bridge:nightly`\n' >> "$BODY_FILE"
if [ -f CHANGES.md ]; then
cat CHANGES.md > "$BODY_FILE"
else
# Fallback falls CHANGES.md fehlt
printf '## KX-Bridge %s -- Nightly Build\n\n' "$VERSION" > "$BODY_FILE"
printf '[experimentell] Ungetestete Features, nur fuer Tester geeignet.\n\n' >> "$BODY_FILE"
printf '- Automatischer Nightly-Build\n\n---\n\n' >> "$BODY_FILE"
printf '### Docker-Image aktualisieren\n\n```bash\ndocker compose pull && docker compose up -d\n```\n\n' >> "$BODY_FILE"
printf 'Image-Tag: `gitea.it-drui.de/viewit/kx-bridge:nightly`\n' >> "$BODY_FILE"
fi
# Tag setzen
git tag -f "$TAG"

View File

@@ -3,7 +3,7 @@ name: Stable Release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v*'
jobs:
release:
@@ -56,9 +56,10 @@ jobs:
echo "${{ secrets.REGISTRY_TOKEN }}" | \
docker login gitea.it-drui.de -u "${{ secrets.REGISTRY_USER }}" --password-stdin
# Strip fuehrendes 'v' fuer den Image-Tag (VERSION-Datei hat kein 'v').
- name: Build & push (amd64 + arm64)
run: |
VERSION="${GITHUB_REF#refs/tags/}"
VERSION="${GITHUB_REF#refs/tags/v}"
docker buildx build \
--platform linux/amd64,linux/arm64 \
--push \
@@ -68,20 +69,6 @@ jobs:
-t "gitea.it-drui.de/viewit/kx-bridge:${VERSION}" \
.
- name: Create Gitea Release
env:
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
run: |
VERSION="${GITHUB_REF#refs/tags/}"
CHANGELOG=$(awk "/^## \[${VERSION}\]/{found=1; next} found && /^## \[/{exit} found{print}" CHANGELOG.md || echo "")
curl -s -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"https://gitea.it-drui.de/api/v1/repos/viewit/KX-Bridge-Release/releases" \
-d "{
\"tag_name\": \"${VERSION}\",
\"name\": \"KX-Bridge ${VERSION}\",
\"body\": $(echo "$CHANGELOG" | python3 -c 'import sys,json; print(json.dumps(sys.stdin.read()))'),
\"draft\": false,
\"prerelease\": false
}"
# Hinweis: Das Gitea-Release (inkl. englischem Auto-Changelog + Binaries als
# Assets) erstellt release.sh synchron, da es die lokal via CodeBuilder
# gebauten Binaries direkt hochlaedt. Dieser Workflow baut nur das Docker-Image.

33
CHANGES.md Normal file
View File

@@ -0,0 +1,33 @@
## KX-Bridge 0.9.27-nightly9 — Nightly Build
[experimentell] Ungetestete Features, nur für Tester geeignet.
### Änderungen seit `v0.9.26`
- fix(spoolman): Status-Dot beim Seitenload initialisieren
- chore: CHANGES.md mit echtem Changelog aus Dev-Repo ins Release-Repo schreiben
- fix(spoolman): SPOOLMAN_* env-Cache bei Restart leeren, Status-Dot nach Save aktualisieren
- chore: README.es.md + CONTRIBUTING.md in release.sh-Sync aufnehmen
- docs: Nightly-Sektion, Wartungshinweis + CONTRIBUTING.md, FR/IT-Sprachen, Downloads-Badge
- fix(update): Nightly-Vergleich auf Versions-String umstellen (statt Datum)
- feat(update): Nightly-Track vom Stable-Track trennen
- fix(release): nightly immer auf nightly-Branch pushen, kein master-Push
- fix(camera): exponentielles Backoff bei ffmpeg-Fehler + /api/camera/reset + ↺-Button
- fix(release): Nightly-Release vom nightly-Branch erlauben
- feat(i18n): fehlende UI-Übersetzungen ergänzt + Keys alphabetisch sortiert (PR #70 @fenopy)
- fix: config/config.ini.example beim Release-Sync mitübertragen (Issue #72)
- feat(ui): Integrationen-Tab in Settings (Spoolman + Obico-Hinweis)
- feat(stack): KobraX Full Stack Compose für Portainer (KX-Bridge + Obico + Spoolman)
- feat(release): Nightly/Stable Release-Workflow mit eigenem Docker-Tag
- feat(spoolman): optionale Spoolman-Filamentverbrauch-Integration (PR #65, @p2l)
- fix(release): Artifact-Download per HTTP statt lokalem Dateipfad
---
### Docker-Image aktualisieren
```bash
docker compose pull && docker compose up -d
```
Image-Tag: `gitea.it-drui.de/viewit/kx-bridge:nightly`

View File

@@ -1 +1 @@
0.9.27-nightly7
0.9.27-nightly9

View File

@@ -550,6 +550,7 @@ function ensureAceDryCards(){
// defer until DOM ready
window.addEventListener('DOMContentLoaded',function(){
setLanguage(currentLang).catch(function(){});
_loadSpoolmanStatus();
// Kein Drucker konfiguriert? → direkt in den Drucker-Tab (zeigt "+ Drucker hinzufügen")
fetch('/kx/printers').then(function(r){return r.json()}).then(function(d){
if(!d.result||!d.result.length){showPanel('printers');loadPrinterTab();}