Meldeweg bei rotem Deploy und Zeitlimits fuer die cachly-Jobs - #2
Merged
Merged
Conversation
Bislang blieb ein fehlgeschlagener Kan-Deploy stumm: wer nicht selbst in die Actions-Oberflaeche schaut, merkt nichts. Der neue Schritt meldet das Ergebnis nach Telegram, bei Erfolg wie bei Misserfolg. Anders als das Vorbild in kanzlei-kompass setzt der Schritt NICHT still aus, wenn die Secrets fehlen. Er schreibt dann eine sichtbare Meldung in den Lauf: bei rotem Deploy als ::error::, bei gruenem als ::warning::. Rot faerben tut er den Lauf nie. TELEGRAM_BOT_TOKEN und TELEGRAM_CHAT_ID sind in diesem Repo noch nicht gesetzt. Ausserdem haben beide Jobs jetzt ein Zeitlimit (20 bzw. 45 Minuten). Ohne Angabe gilt die GitHub-Voreinstellung von 6 Stunden; ein haengender Lauf blockiert damit einen halben Tag den geteilten Runner. Die Upstream-Workflows docker-publish.yml und translate.yml bleiben unberuehrt.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WAS — Ein fehlgeschlagener Kan-Deploy meldet sich jetzt selbst, und beide Jobs des cachly-eigenen Workflows bekommen ein Zeitlimit.
WIRKUNG — Fuer Nutzer von kan.cachly.dev aendert sich nichts. Fuer den Betrieb: bisher blieb ein roter Deploy stumm, man musste von sich aus in die Actions-Oberflaeche schauen. Kuenftig geht eine Nachricht in die Telegram-Ops-Gruppe, bei Erfolg wie bei Misserfolg. Solange die beiden Telegram-Secrets fehlen, sagt der Lauf selbst laut, dass niemand benachrichtigt wurde.
ZIEL & VISION — Ziel: die zwei fehlenden Repo-Secrets setzen, dann ist der Meldeweg scharf. Vision: kein Ausrollen mehr, das unbemerkt scheitert, in keinem der Repos.
ERWARTUNG — Nach dem Zusammenfuehren zeigt der naechste Lauf von "Cachly Deploy" einen zusaetzlichen Schritt "Telegram-Meldung (Deploy-Ergebnis)". Weil TELEGRAM_BOT_TOKEN und TELEGRAM_CHAT_ID hier noch nicht gesetzt sind, endet er mit einer gelben Warnung im Lauf-Protokoll (bei rotem Deploy mit einer roten Fehlermeldung) statt mit einer Telegram-Nachricht. Der Lauf wird davon nie rot. NICHT geloest: die Secrets selbst; und die beiden Upstream-Workflows haben weiterhin kein Zeitlimit (Begruendung unten).
1. Meldeweg bei rotem Deploy
Geaendert wurde ausschliesslich
cachly-deploy.yml— der einzige Workflow dieses Forks, der nach node-1 ausliefert.Vorbild:
kanzlei-kompass/.github/workflows/deploy.yml, Zeilen 94-110. Uebernommen sindif: always(), die Unterscheidung nachjob.statusund der Versand percurlan die Telegram-Bot-API.Ein Punkt ist bewusst anders geloest. Das Vorbild setzt still aus, wenn die Secrets fehlen:
Ein Meldeweg, der unbemerkt nichts tut, ist schlimmer als gar keiner, weil man sich auf ihn verlaesst. Hier schreibt der Schritt stattdessen eine Anmerkung in den Lauf:
::error::— die Meldung erscheint oben in der Lauf-Uebersicht.::warning::.::error::mit dem Text, der haette rausgehen sollen.Der Schritt faerbt den Lauf nie rot (er endet immer mit Exit 0). Ein kaputter Meldeweg soll ein gelungenes Ausrollen nicht nachtraeglich als Fehlschlag darstellen.
Nachgewiesen — der
run-Block wurde aus der YAML-Datei extrahiert und in vier Faellen ausgefuehrt:2. Secrets — Stand in diesem Repo
TELEGRAM_BOT_TOKENundTELEGRAM_CHAT_IDfehlen. Auch org-weit gibt es sie nicht:Sie existieren bisher nur im Kanzlei-Kompass-Repo (
gh secret list -R HeinrichNebula/kanzlei-kompasszeigt beide, vom 12.07.2026). Bot-Token und Chat-Id lassen sich von dort uebernehmen, wenn dieselbe Ops-Gruppe gemeint ist.Zwei weitere Secrets, die der Upstream-Workflow
translate.ymlbraucht (LINGODOTDEV_API_KEY), sind hier ebenfalls nicht gesetzt. Das ist nicht Teil dieser Aenderung, faellt bei der Secret-Pruefung aber auf.3. Zeitlimits — und warum nur zwei von vier Jobs
Ohne
timeout-minutesgilt die GitHub-Voreinstellung von sechs Stunden. Auf dem geteilten self-hosted Node blockiert ein haengender Lauf damit einen halben Tag den Runner-Platz, und in der Oberflaeche sieht man nur "laeuft" — genau das Bild des Zombie-Jobs vom 26.07.2026 bei stayledger.Zaehlung fuer den Branch
cachly-patches, mit demselben Skript vorher und nachher:docker-publish.ymlundtranslate.ymlsind Dateien des Upstream-Projekts kanbn/kan. Sie bleiben bewusst unangetastet: jede Zeile, die wir dort aendern, wird beim naechsten Angleichen an den Upstream zum Konflikt. Beide laufen ausserdem aufubuntu-latestund feuern in diesem Fork nicht (sie haengen anmainund an Tags), belegen also keinen self-hosted Runner. Das Risiko, das die Zeitlimits abwehren sollen, besteht dort nicht.Geprueft wurde ausserdem jeder
run-Block aller drei Dateien mitbash -n:Der Diff besteht ausschliesslich aus neuen Zeilen in einer Datei:
4. Nebenbefund: zwei registrierte Workflows, die nicht auf cachly-patches liegen
Bei der Pruefung ueber die API (im Fork loest
gh run listgegen kanbn/kan auf und liefert 404) faellt auf:kan-cd-fix-probe.ymltraegt selbst "temporaer" im Namen und liegt nicht auf dem Default-Branch:Die Datei liegt also auf einem anderen Branch und bleibt trotzdem als aktiver Workflow registriert. Sie aufzuraeumen gehoert nicht in diesen PR, sollte aber auf die Liste.