Zum Hauptinhalt springen

Kompatibilität der Top-20-Actions aus dem Marketplace

Die meisten Actions aus dem Marketplace funktionieren in fremforge ohne Änderung, weil die Runner von fremforge den Code von Actions über Forgejo-Pull-Mirrors der Upstream-Publisher auf GitHub auflösen, die fremverk betreibt. Ein uses: actions/checkout@v4 in einem Workflow wird zu https://frem.sh/actions/checkout aufgelöst, einem Forgejo-Pull-Mirror von github.com/actions/checkout, der alle 8 Stunden mit dem Upstream synchronisiert wird. Keine Ausführung eines Kunden-Workflows erreicht github.com direkt: Runner sehen immer nur die gespiegelte Kopie, die in der EU liegt, und erfüllen so die Zusage aus Anhang A.6 des AVV. Die Laufzeitumgebung von Forgejo Actions stellt dieselben Umgebungsvariablen bereit wie GitHub Actions (GITHUB_TOKEN, GITHUB_SHA, GITHUB_REF, GITHUB_API_URL usw.), sodass die Anweisung uses: actions/checkout@v4 eines Workflows transparent über den Mirror aufgelöst wird.

Gespiegelte Upstream-Publisher (Stand 2026-06-02)

Diese Publisher auf GitHub sind als Forgejo-Pull-Mirrors auf frem.sh gespiegelt und lassen sich aus jedem Kunden-Workflow problemlos auflösen:

  • actions/ — checkout, setup-node, setup-python, setup-go, setup-java, setup-dotnet, upload-artifact, download-artifact, cache
  • docker/ — login-action, setup-buildx-action, build-push-action
  • pnpm/ — action-setup
  • step-security/ — harden-runner
  • aws-actions/ — configure-aws-credentials
  • azure/ — login
  • google-github-actions/ — auth
  • peter-evans/ — create-pull-request
  • dorny/ — paths-filter, test-reporter
  • softprops/ — action-gh-release
  • sonarsource/ — sonarcloud-github-action

Brauchst du eine Action von einem Publisher, der oben nicht steht, stell eine Mirror-Anfrage. Wir legen einen neuen Pull-Mirror von github.com/<publisher>/<repo> an, und dein Workflow läuft beim nächsten Start problemlos. Mirror-Anfragen sind in der Regel innerhalb eines Werktags erledigt. Reservierte Publisher-Namen (aws-actions, azure, microsoft, sigstore usw.) sind auf der Identitätsebene von Forgejo vorab gesperrt, damit kein Kundenmandant sie besetzen und über deine Workflows Schadcode einschleusen kann.

Diese Matrix deckt die 20 am häufigsten heruntergeladenen Actions ab. Jeder Eintrag ist mit seiner Prüfstufe gekennzeichnet:

  • Code-reviewed: anhand des Quellcodes der Action und Berichten aus der Forgejo-Community bewertet; noch nicht auf einem echten gehosteten Runner von fremforge ausgeführt.
  • Runner-verified: auf einem echten gehosteten Runner von fremforge ausgeführt; das Ergebnis ist empirisch bestätigt.

Einträge der Stufe Runner-verified kommen hinzu, während die Checkliste der Launch-Blocker für Phase 1 abgearbeitet wird.

Legende

  • ✅ Funktioniert unverändert: läuft ohne Änderung; Workflows lassen sich ohne Anpassung übernehmen.
  • ⚠️ Funktioniert mit Hinweis: läuft, aber ein bestimmtes Verhalten weicht ab oder eine Voraussetzung muss erfüllt sein. Der Hinweis beschreibt, was zu tun ist.
  • 🔧 Braucht einen Wrapper: ein kleiner Wrapper oder eine Composite Action stellt die Kompatibilität her. Der Code des Wrappers wird bereitgestellt.
  • ❌ Keine Entsprechung: hängt von Infrastruktur ab, die es nur bei GitHub gibt, und kann nicht gegen fremforge laufen. Eine Alternative wird empfohlen.

Abdeckungszusage

Die 20 meistgenutzten Actions im GitHub Marketplace zum Zeitpunkt des Launchs. Die Liste wird vierteljährlich überprüft; eine Action, die aus den Top 20 herausfällt, bleibt in der Matrix, bis ein Nutzungssignal sie entfernt.

Kompatibilitätsmatrix

ActionStatusStufeHinweise
actions/checkout✅Code-reviewedNutzt GITHUB_TOKEN und den Git-Endpunkt von Forgejo. Keine GitHub-spezifischen API-Aufrufe. Funktioniert unverändert.
actions/setup-node✅Code-reviewedTool-Cache-Action. Kein Aufruf der GitHub-API, wenn die Version im Tool-Cache des Runners liegt; andernfalls liest sie ihre Versionsliste von api.github.com. Siehe Rate-Limit der GitHub-API.
actions/setup-python✅Code-reviewedDasselbe Tool-Cache-Muster wie setup-node, einschließlich des Hinweises zum Rate-Limit der GitHub-API.
actions/setup-go✅Code-reviewedDasselbe Tool-Cache-Muster, einschließlich des Hinweises zum Rate-Limit der GitHub-API.
actions/setup-java✅Code-reviewedDasselbe Tool-Cache-Muster. Temurin kommt von Adoptium; nur Distributionen, deren Versionsliste auf GitHub liegt (etwa der Microsoft Build of OpenJDK), rufen api.github.com auf, siehe Rate-Limit der GitHub-API.
actions/setup-dotnet✅Code-reviewedDasselbe Tool-Cache-Muster. Funktioniert unverändert.
actions/cache✅Code-reviewedLiest ACTIONS_CACHE_URL aus der Umgebung des Runners; die Runner von fremforge zeigen damit auf den eigenen Cache-Dienst von fremforge, getrennt pro Repository (siehe Caching). Funktioniert unverändert, ebenso das eingebaute Caching der setup-*-Actions.
actions/upload-artifact✅Code-reviewedNutzt ACTIONS_RUNTIME_URL bzw. die Artefakt-API. Forgejo 1.22+ implementiert diesen Endpunkt; die Runner von fremforge laufen auf einer kompatiblen Version. Funktioniert unverändert.
actions/download-artifact✅Code-reviewedDieselbe Artefakt-API wie upload-artifact. Funktioniert unverändert.
docker/login-action✅Code-reviewedRuft die Ziel-Registry direkt auf (Docker Hub, GHCR, eigene Registry). Keine GitHub-spezifische API. Funktioniert unverändert.
docker/build-push-action✅Code-reviewedDocker ist auf dem Runner nativ verfügbar (siehe Runner-Images), daher funktioniert diese Action sofort (einschließlich der BuildKit-Funktionen). kaniko bleibt als daemonlose Alternative vorinstalliert, siehe Runner-Image / Container-Builds.
docker/setup-buildx-action✅Code-reviewedBuildx funktioniert mit dem nativen Docker auf dem Runner; BuildKit-Funktionen (cache-from/to, Multi-Plattform über QEMU) sind verfügbar.
peter-evans/create-pull-request✅Code-reviewedNutzt die REST-API von GitHub (Anlegen des PR, Push des Branches) über GITHUB_API_URL, die fremforge auf den API-Endpunkt von Forgejo setzt. Die PR-API von Forgejo ist für die Aufrufe dieser Action kompatibel zu GitHub v3. Funktioniert unverändert.
azure/login⚠️Code-reviewedOIDC-Föderation: Die Action fordert ein OIDC-Token von ACTIONS_ID_TOKEN_REQUEST_URL an, das die Runner von fremforge bereitstellen. Du musst in Azure AD eine föderierte Anmeldeinformation mit dem OIDC-Issuer von fremforge anlegen (https://frem.sh/_app/runner/oidc, ein einziger globaler Issuer für alle Mandanten). Die Schritte stehen im Runbook zum Einrichten von Runner-OIDC. Der Weg über Benutzername und Passwort (creds) funktioniert ohne OIDC-Konfiguration.
aws-actions/configure-aws-credentials⚠️Code-reviewedDieselbe OIDC-Voraussetzung wie bei azure/login. Lege in AWS IAM einen OIDC-Identitätsanbieter mit der Issuer-URL von fremforge an. Siehe das Runbook zum Einrichten von Runner-OIDC. Der Weg über statische Zugriffsschlüssel funktioniert ohne OIDC-Konfiguration.
google-github-actions/auth⚠️Code-reviewedDieselbe OIDC-Voraussetzung. Lege in GCP einen Workload-Identity-Federation-Pool mit dem Issuer von fremforge an. Siehe das Runbook zum Einrichten von Runner-OIDC. Die Authentifizierung per Dienstkontoschlüssel funktioniert ohne OIDC-Konfiguration.
sonarsource/sonarcloud-github-action⚠️Code-reviewedScan und Quality-Gate-Logik funktionieren unverändert (direkte Aufrufe der SonarCloud-API). Die Inline-Dekoration von PRs (Review-Kommentare) nutzt die Checks-API von GitHub; Forgejo unterstützt die Checks-API nur teilweise, daher erscheint die Dekoration eventuell als Commit-Status statt als Inline-Annotationen. Für das Bestanden/Fehlgeschlagen-Gate voll funktionsfähig; die Dichte der Annotationen weicht ab.
dorny/paths-filter✅Code-reviewedLiest den Datei-Diff über die Nutzlast in GITHUB_EVENT_PATH und Git-Befehle. Keine Aufrufe, die nur die GitHub-API bietet. Funktioniert unverändert.
softprops/action-gh-release✅Code-reviewedNutzt die Releases-API von GitHub über GITHUB_API_URL. Forgejo implementiert die Releases-API. Funktioniert unverändert.
dorny/test-reporter⚠️Code-reviewedWertet Dateien mit Testergebnissen aus und legt einen Check Run an. Forgejo unterstützt Check Runs, aber die Grenzen für Annotationen weichen von GitHub ab (GitHub erlaubt 50 Annotationen pro Check Run; die Grenze in Forgejo kann je nach Version variieren). Bei großen Testsuiten werden Annotationen eventuell abgeschnitten. Der Status Bestanden/Fehlgeschlagen wird immer korrekt gemeldet.

OIDC-Föderation einrichten

Actions, die OIDC verwenden (azure/login, aws-actions/configure-aws-credentials, google-github-actions/auth), brauchen einen einmaligen Konfigurationsschritt, um fremforge beim Cloud-Anbieter als vertrauenswürdigen OIDC-Issuer zu registrieren.

Der OIDC-Discovery-Endpunkt von fremforge: https://frem.sh/_app/runner/oidc/.well-known/openid-configuration (ein einziger globaler Endpunkt für alle Mandanten; der Claim iss jedes vom Runner ausgestellten Tokens ist https://frem.sh/_app/runner/oidc). Die Trennung des Vertrauens pro Mandant wird erzwungen, indem die Bedingungen der Vertrauensrichtlinie in der Cloud auf den JWT-Claim repository_owner festgelegt werden, das zu GitHub Actions kompatible Muster.

Die vollständigen Schritt-für-Schritt-Anleitungen für Azure AD, AWS IAM und GCP Workload Identity stehen im Runbook zum Einrichten von Runner-OIDC.

Container-Images bauen

docker build und docker compose laufen nativ auf dem Runner; docker/build-push-action und docker/setup-buildx-action funktionieren unverändert (siehe Runner-Images zum Runner-Modell und zur Verfügbarkeit von Docker). kaniko ist als daemonlose Alternative vorinstalliert, wenn du einen schnelleren Kaltstart oder Layer-Caching in einer entfernten Registry möchtest:

- name: Build + push image (kaniko)
  run: |
    /usr/local/bin/kaniko \
      --context=$GITHUB_WORKSPACE \
      --dockerfile=Dockerfile \
      --destination=registry.example.com/$GITHUB_REPOSITORY:$GITHUB_SHA

Um Images nur zwischen Registrys zu kopieren, neu zu taggen oder zu pushen, funktioniert das vorinstallierte skopeo ohne Docker-Daemon. Das vollständige Muster steht unter Runner-Image.

Wenn du eine Lücke findest

Findest du eine Action aus dem Marketplace, die in die Top 20 gehört und deren Kompatibilität wir noch nicht bewertet haben, oder verhält sich eine hier aufgeführte Action nicht wie dokumentiert, melde das an support@frem.sh mit einem Betreff, der mit MARKETPLACE COMPAT - beginnt. Wir prüfen es und aktualisieren die Matrix.

Jenseits der Top 20

Die meisten anderen Actions aus dem Marketplace funktionieren einfach. Ausnahmen sind Actions, die:

  • sich auf interne API-Endpunkte von GitHub stützen (Codespaces-API, Copilot-API, die API der Container-Registry von GitHub Packages über Standard-OCI-Push und -Pull hinaus);
  • die OIDC-Issuer-URL von GitHub (https://token.actions.githubusercontent.com) fest eincodieren, statt ACTIONS_ID_TOKEN_REQUEST_URL zu lesen;
  • eine GitHub-spezifische Authentifizierung über GITHUB_TOKEN hinaus verlangen.

Für ungeprüfte Actions außerhalb der Top 20 gilt: Probier es aus. Die meisten funktionieren. Die wenigen, die es nicht tun, melde uns, und wir liefern entweder einen Wrapper oder benennen die Lücke in den Migrationsleitfäden.

Siehe auch

  • Runner-Images, verfügbare Runner-Labels und welches Image zu welchem gehört.
  • Runner-OIDC einrichten, Vertrauen beim Cloud-Anbieter für Actions mit OIDC-basierter Authentifizierung konfigurieren.
  • Migrationsleitfäden, wie Verweise auf Actions aus dem Marketplace bei einer Plattformmigration übernommen werden.
  • Öffentliche REST-API, die API von fremforge für Actions, die die Plattform zurückrufen müssen.