Forgejo Pipelines · Workshop Lektion 6 / uses ★

Actions verwenden: uses

Die zentrale Forgejo-Besonderheit: Wie uses: eine Action findet – ohne Marketplace.

Warum das zählt
actions/checkout hast du schon benutzt – aber woher kommt das? In Forgejo gibt es keinen zentralen Marketplace wie bei GitHub. Wer versteht, wie uses: auflöst, vermeidet die häufigsten „Action not found"-Fehler und kopiert GitHub-Workflows richtig.

Vier Formen von uses:

# 1) Kurzform — wird mit DEFAULT_ACTIONS_URL ergänzt
- uses: actions/checkout@v4
  #   -> https://data.forgejo.org/actions/checkout@v4

# 2) Voll-URL — eindeutig, EMPFOHLEN
- uses: https://code.forgejo.org/actions/checkout@v4

# 3) Lokale Action im eigenen Repo
- uses: ./.forgejo/actions/meine-action

# 4) Direkt ein Container-Image
- uses: docker://alpine:3.20
Kein Marketplace – nur URLs Die Kurzform owner/repo@ref ist nicht magisch: Forgejo stellt DEFAULT_ACTIONS_URL davor (Standard: https://data.forgejo.org). Welche Instanz das ist, legt die Admin-Person fest. Deshalb gilt: im Zweifel die volle URL schreiben – dann ist unabhängig von der Instanz klar, was geladen wird.

@ref: Tag, Branch oder SHA

Hinter dem @ steht die Version: ein Tag (@v4), ein Teil-Tag, ein Branch oder ein voller Commit-@<sha>. Für Reproduzierbarkeit und Sicherheit ist das SHA-Pinning am stärksten – ein Tag kann sich verschieben, ein SHA nicht.

Kopierte GitHub-Workflows Viele GitHub-Actions funktionieren über den Forgejo-Mirror – aber nicht alle (z. B. upload-artifact, siehe Lektion 3). Teste eine Action, bevor du dich darauf verlässt, und bevorzuge Forgejo-eigene Quellen unter code.forgejo.org.

Eine Action nimmt Eingaben mit with:

      - uses: https://code.forgejo.org/actions/setup-python@v5
        with:
          python-version: "3.12"

Was eine Action an with: erwartet, steht in ihrer action.yml bzw. README.

Parallelen: GitLab CI ↔ Forgejo Actions

GitLab CI

Kein „Action"-Konzept

Wiederverwendung via include: / CI-Components

Quelle: Repo-Pfad oder Component-Katalog

Forgejo Actions

uses: bindet fertige Bausteine ein

Auflösung über URL / DEFAULT_ACTIONS_URL

Quelle: jedes Git-Repo (kein Marketplace)

Übungen für Teilnehmende

Übung 1 · Auflösen

Frage: Zu welcher URL expandiert uses: actions/cache@v4 bei Standard-Konfiguration?

Lösung anzeigen

https://data.forgejo.org/actions/cache@v4 – die Kurzform wird mit DEFAULT_ACTIONS_URL (https://data.forgejo.org) ergänzt.

Übung 2 · Sicherer machen

Aufgabe: Schreibe uses: actions/checkout@v4 so um, dass es (a) instanz-unabhängig und (b) auf eine unveränderliche Version gepinnt ist.

Lösung anzeigen
- uses: https://code.forgejo.org/actions/checkout@<commit-sha>

Volle URL = instanz-unabhängig; Commit-SHA = unveränderlich. Ein Tag wäre bequemer, aber theoretisch verschiebbar.

Kurz prüfen (aus dem Kopf)

Wie findet Forgejo eine Action aus der Kurzform?

Welche uses:-Form ist am eindeutigsten?

Primärquelle zum Lesen Forgejo Docs – Using Actions (Auflösung, DEFAULT_ACTIONS_URL, Action-Typen).
Ich bin dein Teacher. „Action not found" oder unsicher, welche Quelle vertrauenswürdig ist? Frag im Chat – wir gehen die Auflösung an deinem Fall durch.
← Lektion 5 · Trigger & Bedingungen Lektion 7 · services – Postgres →