--- name: ship description: "CoPuPi-Workflow: Commit, Mac-Build-Test, Push, GitHub-Pipeline beobachten. Verwende diesen Skill für alles rund um das Ausliefern von Code – git push, Pipeline-Status, CI-Fehler beheben, Version hochzählen. Trigger-Phrasen: 'ship', 'push', 'pipeline', 'CI', 'deployen', 'ausliefern', 'version bump'." --- # Skill: Ship (CoPuPi-Workflow) Dieser Skill kapselt Tools und Konventionen für den Ship-Workflow – den Weg vom lokalen Commit bis zur grünen CI-Pipeline. Der vollständige Workflow wird über `.github/prompts/ship.prompt.md` gesteuert. --- ## Enthaltene Tools ### `watch-pipeline.ps1` Beobachtet den neuesten GitHub Actions Run bis zum Abschluss. Gibt Status, Dauer und Warnungen aus. **Aufruf:** ```powershell # Standard: 15s warten, dann neuesten Run beobachten (nach Push) & ".github/skills/ship/watch-pipeline.ps1" # Run existiert bereits – sofort starten & ".github/skills/ship/watch-pipeline.ps1" -WaitForNew 0 # Bestimmten Commit verfolgen (wartet bis Run erscheint) & ".github/skills/ship/watch-pipeline.ps1" -ExpectedSha abc1234 # Längerer Timeout (Default: 300s) & ".github/skills/ship/watch-pipeline.ps1" -Timeout 600 ``` **Parameter:** | Parameter | Default | Beschreibung | | -------------- | ------- | --------------------------------------------------------------------- | | `-WaitForNew` | 15 | Sekunden Wartezeit nach Push, bis Run erscheint. 0 = sofort. | | `-Timeout` | 300 | Maximale Wartezeit in Sekunden bis zum Abschluss. | | `-ExpectedSha` | – | Git-SHA (kurz/lang). Wartet bis Run mit diesem SHA erscheint (60s). | **Exit-Codes:** | Code | Bedeutung | | ---- | ------------------------------------------------------ | | 0 | Pipeline grün (success) | | 1 | Pipeline fehlgeschlagen (failure/cancelled) | | 2 | Timeout – Run läuft noch | | 0 | Kein Run für SHA gefunden (Pfad-Filter, kein Trigger) | **Ausgabe:** Run-ID, Name, SHA, Statusmeldung, Warnungen aus Annotations. --- ## Verwendung im Ship-Prompt Schritt 4 des `ship.prompt.md` ruft das Skript auf: ```powershell & ".github/skills/ship/watch-pipeline.ps1" ``` Verwende `mode=sync` mit `timeout=300000` beim Aufruf über `run_in_terminal`.