Pipelines
Pipelines zeigt zu einem Projekt seine Pipelines, deren Laufhistorie und das Protokoll jedes Laufs. Das Paket richtet sich an Projektbeteiligte, die Läufe nachlesen, und an Verwalter, die wissen müssen, was es auf ihrer Installation leistet.
[sys] pwsh runner is unavailable (plugin not loaded). Der Bereich Pipelines bleibt deshalb ausgeblendet, bis ein Ausführer vorhanden ist.
Erste Schritte
Häufige Aufgaben
| Was Sie wollen | Für wen | Wo Sie das tun | Anleitung |
|---|---|---|---|
| wissen, warum der Bereich fehlt | alle | Projektseite | Sichtbarkeit des Bereichs |
| die Laufhistorie ansehen | Projektbeteiligte | Bildschirm per Adresse | Was ohne Ausführer funktioniert |
| ein Protokoll lesen | Projektbeteiligte | Lauf öffnen | Das Protokoll eines Laufs |
| einen Lauf starten | Wiki-Administrator | Laufhistorie | Wer ansehen und wer starten darf |
| wissen, was das Paket nicht leistet | alle | – | Grenzen |
Was ohne Ausführer funktioniert
| Bildschirm | Adresse | Wer |
|---|---|---|
| Pipelines eines Projekts | Projektseite mit &do=wkdopipelines | Projektrolle Leser oder höher |
| Laufhistorie einer Pipeline | …&op=runs&pipeline=<Nummer> | Leser oder höher |
| ein Lauf mit Protokoll | …&op=run&run=<Nummer> | Leser oder höher |
| Lauf starten (Jetzt ausführen) | Schaltfläche in der Laufhistorie | nur der Wiki-Administrator |
Eine Pipeline anlegen lässt sich weder über einen Bildschirm noch per Befehl. Eine Pipeline ist eine Zeile in der Ablage von wkdostorage – Name, Aktion (action_id), Vorgabeparameter –, und die Funktion, die sie schreibt, ruft kein Teil des Produkts auf. Ist die Liste leer, meldet der Bildschirm: Für dieses Projekt sind noch keine Pipelines definiert.
Sichtbarkeit des Bereichs
Projektleiste und Dashboard zeigen Pipelines nur, wenn das Plugin installiert ist und ein Plugin die beiden Dienste pwsh.catalog (die freigegebenen Skripte) und pwsh.runner (die Ausführung) anmeldet. Fehlt einer, führt kein Weg dorthin; per Adresse bleiben die Bildschirme erreichbar.
Der Vorgänger wvds-dw-pwsh-plugin meldet die Dienste bei einem Ereignis an, das nicht mehr ausgelöst wird. Auch installiert verbindet er sich deshalb nicht.
Wer ansehen und wer starten darf
| Handlung | Voraussetzung |
|---|---|
| Pipelines, Läufe und Protokolle ansehen | Projektrolle Leser oder höher |
| einen Lauf starten | Wiki-Administrator – keine Projektrolle genügt |
Jeder Lauf hält fest, wer ihn gestartet hat.
Das Protokoll eines Laufs
Jeder Lauf hat ein Protokollfeld von höchstens 512 KiB. Woher eine Zeile stammt, zeigt ihr Präfix:
| Zeile | Herkunft |
|---|---|
| ohne Präfix | Standardausgabe des Skripts |
[err] … | Standardfehlerausgabe des Skripts |
[sys] … | Bericht des Ausführers selbst |
Stehen nur [sys]-Zeilen im Protokoll, wurde das Skript nie erreicht. Die letzte nennt den Grund:
[sys]-Zeile | bedeutet |
|---|---|
pipeline is disabled | Die Pipeline ist abgeschaltet. |
pipeline has no action_id | Die Pipeline nennt kein Skript. |
pwsh runner is unavailable (plugin not loaded) | Kein Plugin meldet pwsh.catalog und pwsh.runner an. |
action '…' is not an allowlisted catalog script | Der Katalog des Ausführers führt das Skript nicht. |
Wird die Grenze erreicht, endet das Protokoll mit [sys] [log truncated at 524288 bytes].
Konfiguration
Keine. Wer ansehen darf, folgt der Projektrolle; wer starten darf, ist der Wiki-Administrator; ob der Bereich erscheint, folgt den installierten Plugins und Diensten.
Voraussetzungen
- PHP 8.2 oder neuer.
- Für Läufe, die etwas ausführen: ein Plugin, das
pwsh.catalogundpwsh.runneranmeldet – im Produkt nicht enthalten.
Grenzen
- Kein Ausführer und kein Anlegen von Pipelines im Produkt, siehe oben.
- Ein Lauf läuft in der Anfrage, die ihn startet. Die Seite wartet, bis das Skript endet oder PHP die Anfrage nach
max_execution_timeabbricht. Es gibt keine Warteschlange, kein Abbrechen und keine eigene Zeitgrenze. Ein Skript, das auf eine Eingabe wartet, endet nie. - Nur manueller Start. Kein Auslöser bei Push, Pull Request oder nach Zeitplan; ein Lauf hält kein Repository, keinen Zweig und keinen Commit fest.
- Keine Artefakte, Umgebungen, Freigaben oder Testergebnisse – ein Lauf hat einen Exit-Code und ein Protokoll.
- Kein Ersatz für Azure DevOps Pipelines.
Paketangaben
Plugin: wkdopipelines
Namespace: lib/plugins/wkdopipelines/
Autor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Lizenz: GPL 2