usesDie zentrale Forgejo-Besonderheit: Wie uses: eine Action findet – ohne Marketplace.
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.
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
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.
upload-artifact, siehe Lektion 3). Teste eine Action, bevor du dich darauf
verlässt, und bevorzuge Forgejo-eigene Quellen unter code.forgejo.org.
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.
Kein „Action"-Konzept
Wiederverwendung via include: / CI-Components
Quelle: Repo-Pfad oder Component-Katalog
uses: bindet fertige Bausteine ein
Auflösung über URL / DEFAULT_ACTIONS_URL
Quelle: jedes Git-Repo (kein Marketplace)
Frage: Zu welcher URL expandiert uses: actions/cache@v4 bei
Standard-Konfiguration?
https://data.forgejo.org/actions/cache@v4 – die Kurzform wird mit
DEFAULT_ACTIONS_URL (https://data.forgejo.org) ergänzt.
Aufgabe: Schreibe uses: actions/checkout@v4 so um, dass es
(a) instanz-unabhängig und (b) auf eine unveränderliche Version gepinnt ist.
- 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.
Wie findet Forgejo eine Action aus der Kurzform?
Kein Marketplace: owner/repo@ref wird mit DEFAULT_ACTIONS_URL
(Standard data.forgejo.org) zu einer vollen URL ergänzt.
Welche uses:-Form ist am eindeutigsten?
Volle URL macht die Quelle instanz-unabhängig; ein SHA fixiert die exakte Version.
DEFAULT_ACTIONS_URL, Action-Typen).