Zum Inhalt springen

Actions in STACKIT Git aktivieren

Actions mit zentral verwalteten Runnern von STACKIT aktivieren

Abschnitt betitelt „Actions mit zentral verwalteten Runnern von STACKIT aktivieren“

STACKIT bietet jetzt zentral verwaltete Runner für Ihre STACKIT Git Actions an. Um diese zu nutzen, erstellen Sie bitte eine neue Service-Anfrage über das STACKIT Help Center, in der Sie klar angeben, für welche Instanz die Runner aktiviert werden sollen. [Voraussichtliche Antwortzeit: 2 Tage]

Sobald der STACKIT Runner eingerichtet ist, werden Sie über ein Support-Ticket benachrichtigt. Der Runner ist mit zwei Tags konfiguriert: stackit-ubuntu-20 und stackit-docker.

  • stackit-ubuntu-20 basiert auf Ubuntu 20.04 und enthält Node.js, was für die meisten Github Actions geeignet ist.
  • stackit-docker enthält ein Docker-Tooling-Set mit vollen Docker-Funktionen zum Erstellen und Pushen von Images. Beachten Sie, dass dieses Image einen größeren Speicherbedarf hat.

Um einen bestimmten Runner-Tag zu verwenden, stellen Sie sicher, dass Sie das Feld runs-on in Ihrer Workflow-YAML-Datei entsprechend definieren.

Actions mit Ihren eigenen selbst-gehosteten Runnern aktivieren

Abschnitt betitelt „Actions mit Ihren eigenen selbst-gehosteten Runnern aktivieren“

STACKIT Git Actions bietet Continuous Integration mit einer Web-Oberfläche zur Anzeige der Ergebnisse. Die Syntax und Semantik der Workflow-Dateien werden Nutzern von GitHub Actions vertraut sein, aber sie sind nicht und werden nie identisch sein. Die folgende Anleitung erklärt die wichtigsten Konzepte, um zu verstehen, wie Workflows interpretiert werden, zusammen mit einer Reihe von Beispielen, die kopiert und angepasst werden können, um bestimmten Anwendungsfällen gerecht zu werden.

  • Verifizieren Sie, dass Enable Repository Actions aktiviert ist.
  • Fügen Sie Folgendes zur Datei .forgejo/workflows/demo.yaml in Ihrem Repository hinzu.
  • Gehen Sie zum Tab Actions auf der Seite /{owner}/{repository}/actions des Repositorys, um das Ergebnis des Laufs zu sehen.
  • Klicken Sie auf den Workflow-Link, um die Details und die Job-Ausführungsprotokolle einzusehen.

In der STACKIT Git-Terminologie ist ein Workflow eine .yml-Datei im Verzeichnis .forgejo/workflows des Repositorys. Ein Workflow hat Jobs mit Steps, die von einem Action Runner ausgeführt werden.

Eine Action ist ein Repository, das das Äquivalent einer Funktion in jeder Programmiersprache enthält. Sie gibt es in zwei Varianten, abhängig von der Datei, die sich im Stammverzeichnis des Repositorys befindet:

  • action.yml: beschreibt die Inputs und Outputs der Action und die Implementierung.
  • Dockerfile: Wenn keine Datei action.yml gefunden wird, wird diese verwendet, um ein Image mit docker build zu erstellen und einen Container daraus zu starten, um die Action auszuführen.

Eine der am häufigsten verwendeten Actions ist checkout, die das Repository klont, das einen Workflow ausgelöst hat. Eine weitere ist setup-go, die Go installiert.

Wie jedes andere Programm oder jede andere Funktion hat eine Action Voraussetzungen für eine erfolgreiche Installation und Ausführung. Dies ist zu beachten, wenn eine bestehende Action wiederverwendet werden soll.

In einer Workflow-Datei werden Zeichenketten, die wie ${{... }} aussehen, vom Instanz-Runner evaluiert und als Ausdrücke (Expressions) bezeichnet. Als Abkürzung gilt if: ${{... }} als äquivalent zu if:..., d.h. die den Ausdruck umgebenden ${{ }} sind implizit und können weggelassen werden.

  • Boolean: true oder false
  • Null: null
  • Zahl: jedes von JSON unterstützte Zahlenformat
  • String: in einfachen Anführungszeichen eingeschlossen
OperatorBeschreibung
( )Logische Gruppierung
[ ]Index
.Eigenschafts-Dereferenzierung
!Negation
<Kleiner als
<=Kleiner oder gleich
>Größer als
>=Größer oder gleich
==Gleich
!=Ungleich
&&Und

HINWEIS: String-Vergleiche sind nicht case-sensitiv.

Können in if:-Bedingungen für Jobs und Steps verwendet werden.

  • success(). Gibt true zurück, wenn keiner der vorherigen Jobs/Steps fehlgeschlagen oder abgebrochen wurde.
  • always(). Bewirkt, dass der Job/Step immer ausgeführt wird, und gibt true zurück, auch wenn er abgebrochen wurde. Wenn Sie einen Job/Step unabhängig von seinem Erfolg oder Misserfolg ausführen möchten, verwenden Sie die empfohlene Alternative: '!cancelled()' (der Ausdruck muss in Anführungszeichen eingeschlossen werden, damit er nicht als YAML-Tag interpretiert wird).
  • failure(). Gibt true zurück, wenn ein vorheriger Step/Job fehlgeschlagen ist.
  • contains( search, item ). Gibt true zurück, wenn search das item enthält. Wenn search ein Array ist, gibt diese Funktion true zurück, wenn das item ein Element im Array ist. Wenn search ein String ist, gibt diese Funktion true zurück, wenn das item ein Substring von search ist. Diese Funktion ist nicht case-sensitiv. Sie wandelt Werte in einen String um.
  • startsWith( searchString, searchValue ). Gibt true zurück, wenn searchString mit searchValue beginnt. Diese Funktion ist nicht case-sensitiv. Sie wandelt Werte in einen String um.
  • endsWith( searchString, searchValue ). Gibt true zurück, wenn searchString mit searchValue endet. Diese Funktion ist nicht case-sensitiv. Sie wandelt Werte in einen String um.
  • format( string, replaceValue0, replaceValue1,..., replaceValueN). Ersetzt Werte im string durch die Variable replaceValueN. Variablen im string werden mit der {N}-Syntax angegeben, wobei N eine Ganzzahl ist. Sie müssen mindestens einen replaceValue und string angeben. Maskieren Sie geschweifte Klammern mit doppelten geschweiften Klammern.
  • join( array, optionalSeparator ). Der Wert für array kann ein Array oder ein String sein. Alle Werte in array werden zu einem String zusammengefügt. Wenn Sie optionalSeparator angeben, wird es zwischen die zusammengefügten Werte eingefügt. Andernfalls wird der Standardtrennzeichen , verwendet. Sie wandelt Werte in einen String um.
  • toJSON(value). Gibt eine schön formatierte JSON-Darstellung von value zurück.
  • fromJSON(value). Gibt ein JSON-Objekt oder einen JSON-Datentyp für value zurück. Sie können diese Funktion verwenden, um ein JSON-Objekt als einen ausgewerteten Ausdruck bereitzustellen oder um Umgebungsvariablen aus einem String zu konvertieren. STACKIT Git Pipelines basieren auf Forgejo. Weitere Informationen dazu, wie Sie den größtmöglichen Nutzen aus Ihren Pipelines ziehen können, finden Sie in der Forgejo-Dokumentation.