Polycrate CLI 0.39.0
Polycrate CLI 0.39.0
Release-Datum: 8. Mai 2026
Typ: Feature-Release
Highlights
Polycrate CLI 0.39.0 fuehrt einen zweiphasigen ActionRun-Flow ein: Die CLI registriert einen ActionRun vor der Ausfuehrung bei der Polycrate-API und exponiert die resultierende ActionRun-ID als Block-Label (polycrate_actionrun_id). Damit ist die ID zur Laufzeit im Block-Kontext verfuegbar. Bei einem Konflikt (bereits laufender ActionRun fuer denselben Block) erscheint ein interaktiver Prompt. Zusaetzlich werden CTRL+C-Unterbrechungen jetzt sauber als cancelled in der API markiert. Ein Fix sorgt dafuer, dass Container-stdout und -stderr korrekt demultiplext werden, sodass --ansible-stdout-callback=json 2>/dev/null einen vollstaendig sauberen JSON-Stream auf stdout liefert.
Artefakte
Docker Images
docker pull cargo.ayedo.cloud/library/polycrate:0.39.0
CLI Downloads
| Plattform | Architektur | Download |
|---|---|---|
| Linux | amd64 | Download |
| Linux | arm64 | Download |
| macOS | amd64 | Download |
| macOS | arm64 (Apple Silicon) | Download |
Installation & Update
polycrate update 0.39.0
Aenderungen
ActionRun: Zweiphasiger Start/Finish-Flow mit Block-Label-Propagation
Die CLI fuehrt nun einen zweiphasigen ActionRun-Flow durch, wenn die API-Integration aktiv ist (--api-enabled):
Phase 1 – Start (vor der Ausfuehrung):
POST /api/v1/cli/action-runs/start/wird aufgerufen, bevor die Action startet- Bei Erfolg:
polycrate_actionrun_idwird als kanonisches Block-Label gesetzt und steht im Block-Kontext zur Verfuegung - Bei 409 Conflict (bereits laufender ActionRun fuer denselben Block): interaktiver Prompt erscheint mit Link zur laufenden ActionRun; User kann Ausfuehrung erzwingen (
force=true) oder abbrechen (exit 0) - Bei API-Fehler (nicht erreichbar): Ausfuehrung laeuft ohne registrierten ActionRun weiter (non-blocking Fallback)
Phase 2 – Finish (nach der Ausfuehrung):
POST /api/v1/cli/action-runs/finish/wird mit Exit-Code und Status aufgerufen- Ist keine
actionRunIDbekannt (API war beim Start nicht erreichbar): Fallback auf einphasige Submission
Das Block-Label polycrate_actionrun_id ist damit in Ansible-Tasks und Block-Templates waehrend der Ausfuehrung verfuegbar.
ActionRun: CTRL+C-Unterbrechung als cancelled markieren
Wird eine Action mit CTRL+C unterbrochen (Exit Code 130), registriert die CLI den ActionRun jetzt via Cleanup-Handler als cancelled in der API. Ein sync.Once-Mechanismus stellt sicher, dass nur einer der beiden Pfade (normaler Finish oder Cancellation) den API-Aufruf ausfuehrt.
Ausserdem erhaelt die Polycrate-API-Oberflaeche einen Cancel-Button fuer ActionRuns im Status running, sofern diese von der CLI gestartet wurden. Damit koennen orphaned ActionRuns manuell abgebrochen werden.
Fix: Container stdout/stderr Demultiplexing
Docker-Attach liefert einen multiplexten Stream, der Container-stdout und -stderr gemischt enthaelt. Bisher wurde dieser Stream via io.Copy direkt auf polycrate-stdout kopiert, sodass Ansible-Meldungen wie Using /path/ansible.cfg as config file trotz 2>/dev/null auf stdout erschienen.
Ab 0.39.0 wird stdcopy.StdCopy verwendet: Container-stdout landet auf polycrate-stdout, Container-stderr auf polycrate-stderr. Das ermoeglicht vollstaendig saubere JSON-Pipelines:
polycrate run --silent --ansible-stdout-callback=json my-block my-action 2>/dev/null
polycrate-operator Block
Der polycrate-operator Block wurde auf Version 0.4.3 aktualisiert (app_version: 0.39.0):
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-operator
polycrate run polycrate-operator install
Jetzt aktualisieren
polycrate update 0.39.0
Oder laden Sie die Binaries direkt vom PolyHub herunter.