feat(18-02): Task 1 — Job desktop (Linux-AppImage) und Uebergabe an publish per actions/cache

- Neuer CI-Job desktop nach test, laeuft auf main und bei Tags v* (Systemabhaengigkeiten,
  Rust-Toolchain per rustup, Cargo-Zwischenspeicher, Version setzen, cargo check/clippy,
  alte Bundles entfernen, Linux-AppImage bauen, desktop-collect.sh --require linux,
  Uebergabe per actions/cache/save mit Schluessel desktop-dist-${{ gitea.sha }})
- publish haengt jetzt an desktop (needs: desktop) statt an test, holt die Pakete per
  actions/cache/restore mit fail-on-cache-miss: true und prueft das Manifest hart
- publish-images.sh bricht im echten Baupfad ohne desktop-dist/manifest.json ab
  (zweites Netz gegen einen Cache-Fehlschlag, D-08/Pitfall 1)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-16 16:21:09 +02:00
parent cd62de1d38
commit a6ffe05150
2 changed files with 95 additions and 1 deletions
+11
View File
@@ -19,6 +19,12 @@
# die volle Historie samt Tags (fetch-depth: 0 im Workflow).
#
# Dieses Skript kennt kein Secret und gibt keines aus; der Registry-Login bleibt im Workflow.
#
# Phase 18 (18-02): Die Desktop-Pakete kommen aus dem vorgeschalteten Job `desktop`
# und werden per actions/cache als desktop-dist/ uebergeben; das Dockerfile der API
# kopiert desktop-dist/ ins Abbild. Ohne desktop-dist/manifest.json bricht dieses
# Skript im echten Baupfad hart ab -- zweites Netz gegen Pitfall 1 (Cache-Fehlschlag),
# der Workflow selbst prueft es bereits vor diesem Schritt.
set -eu
REGISTRY="${REGISTRY:-localhost:3002/schalli/tessera-ctl}"
@@ -54,6 +60,11 @@ if [ "${1:-}" = "--print-plan" ]; then
exit 0
fi
if [ ! -f desktop-dist/manifest.json ]; then
echo "desktop-dist/manifest.json fehlt -- kein Abbild ohne Desktop-Pakete (Pitfall 1)." >&2
exit 1
fi
for IMG in web api; do
docker build -t "$REGISTRY/$IMG:$APP_CHANNEL" \
--build-arg APP_VERSION="$APP_VERSION" \