Forgejo Pipelines · Workshop Referenz

Vordefinierte Variablen & Kontexte

Was Forgejo dir automatisch in jeden Job gibt – als $FORGEJO_*-Umgebungsvariablen und als ${{ … }}-Kontexte.

Doppelte Namen: FORGEJO_ und GITHUB_ Jede injizierte Variable existiert zweimal: mit FORGEJO_- und mit GITHUB_-Präfix (Kompatibilität mit GitHub-Actions). Beide zeigen auf denselben Wert. Im Workshop bevorzugen wir FORGEJO_ – aber kopierte GitHub-Workflows mit $GITHUB_* funktionieren trotzdem.

Umgebungsvariablen (Shell-Zugriff via $NAME)

VariableBedeutung
FORGEJO_REPOSITORYowner/repo des laufenden Repos.
FORGEJO_ACTORBenutzername, der den Lauf ausgelöst hat.
FORGEJO_REFVoll-Ref, z. B. refs/heads/main oder refs/pull/7/head.
FORGEJO_SHACommit-SHA, der den Lauf ausgelöst hat.
FORGEJO_EVENT_NAMEAuslösendes Event, z. B. push, pull_request.
FORGEJO_WORKSPACEArbeitsverzeichnis im Job (wo checkout landet).
FORGEJO_TOKEN Automatischer Token für API-Aufrufe. In Fork-PRs nur lesend. Kann keine weiteren Workflows auslösen.
FORGEJO_SERVER_URLBasis-URL der Forgejo-Instanz.
FORGEJO_API_URLBasis-URL der Forgejo-API.
FORGEJO_OUTPUTDatei, in die ein Step Outputs schreibt (echo "k=v" >> "$FORGEJO_OUTPUT").
FORGEJO_ENVDatei, um Env-Variablen für folgende Steps zu setzen.

Ausdrucks-Kontexte (${{ … }})

In YAML-Werten – nicht in der Shell. Forgejo wertet sie vor der Ausführung aus.

KontextEnthält
forgejo Metadaten des Laufs: forgejo.ref, forgejo.sha, forgejo.actor, forgejo.event_name, forgejo.repository … Aliase: github, forge.
secretsRepo-/Org-Secrets, z. B. ${{ secrets.REGISTRY_TOKEN }}. In Fork-PRs leer.
varsNicht-geheime Repo-/Org-Variablen.
envIm Workflow definierte Umgebungsvariablen.
matrixWerte der aktuellen Matrix-Zelle, z. B. ${{ matrix.python }}.
stepsOutputs vorheriger Steps (mit id:), z. B. ${{ steps.v.outputs.ver }}.
needsOutputs von Jobs aus needs, z. B. ${{ needs.build.outputs.ver }}.
inputsEingaben einer reusable workflow / eines workflow_dispatch.
runnerInfos zum Runner (OS, Architektur).

Nützliche Ausdrucks-Funktionen

FunktionZweck
success()True, solange kein vorheriger Step/Job fehlschlug (Default für Steps).
failure()True, sobald etwas fehlgeschlagen ist – für Aufräum-/Melde-Steps.
always()Läuft immer, auch nach Fehler oder Abbruch.
cancelled()True, wenn der Lauf abgebrochen wurde.
fromJSON() / toJSON()JSON parsen / erzeugen (z. B. dynamische Matrix).
hashFiles()Hash über Dateien – ideal als Cache-Key.
Faustregel $FORGEJO_REF in der Shell (im run:), ${{ forgejo.ref }} im YAML-Wert (z. B. in if: oder name:). Beide liefern dieselbe Information.
Quelle Forgejo Docs – Reference (Contexts & Variables)
← Cheatsheet: Workflow-Anatomie Kursübersicht →