Aller au contenu principal

Compatibilité des 20 actions Marketplace les plus utilisées

La plupart des actions Marketplace fonctionnent sur fremforge sans modification, car les runners fremforge récupèrent le code des actions via des miroirs Forgejo (pull-mirrors), exploités par fremverk, des éditeurs d’origine sur GitHub. Le uses: actions/checkout@v4 d’un workflow se résout en https://frem.sh/actions/checkout, un miroir Forgejo de github.com/actions/checkout synchronisé avec l’amont toutes les 8 heures. Aucune exécution de workflow client n’atteint directement github.com : les runners ne voient jamais que la copie miroir conservée dans l’UE, conformément à l’engagement de l’annexe A.6 du DPA. L’environnement d’exécution Forgejo Actions expose les mêmes variables d’environnement que GitHub Actions (GITHUB_TOKEN, GITHUB_SHA, GITHUB_REF, GITHUB_API_URL, etc.), de sorte qu’une directive uses: actions/checkout@v4 passe par le miroir de façon transparente.

Éditeurs en amont disposant d’un miroir (au 2026-06-02)

Ces éditeurs GitHub disposent de miroirs Forgejo sur frem.sh et se résolvent sans problème depuis n’importe quel workflow client :

  • 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

Si vous avez besoin d’une action d’un éditeur absent de cette liste, envoyez une demande de miroir. Nous ajoutons un nouveau miroir de github.com/<publisher>/<repo> et votre workflow s’exécute sans problème dès le déclenchement suivant. Les demandes de miroir aboutissent généralement en un jour ouvré. Les noms d’éditeurs réservés (aws-actions, azure, microsoft, sigstore, etc.) sont verrouillés d’avance au niveau des identités Forgejo, pour qu’aucune organisation cliente ne puisse les accaparer et injecter du code malveillant dans vos workflows.

Cette matrice couvre les 20 actions les plus téléchargées. Chaque entrée indique son niveau de vérification :

  • Revue du code : évaluée à partir du code source de l’action et des retours de la communauté Forgejo ; pas encore exécutée sur un runner hébergé fremforge réel.
  • Vérifiée sur runner : exécutée sur un vrai runner hébergé fremforge ; résultat confirmé en pratique.

Les entrées vérifiées sur runner arrivent au fil de la liste de contrôle bloquante du lancement de la phase 1.

Légende des états

  • ✅ Fonctionne telle quelle : s’exécute sans changement ; les workflows se transposent sans modification.
  • ⚠️ Fonctionne avec une remarque : s’exécute, mais un comportement précis diffère ou un prérequis doit être rempli. La remarque explique quoi faire.
  • 🔧 Nécessite une adaptation : une petite enveloppe ou une action composite rétablit la compatibilité. Le code de l’enveloppe est fourni.
  • ❌ Pas d’équivalent : dépend d’une infrastructure propre à GitHub et ne peut pas s’exécuter sur fremforge. Une alternative est recommandée.

Engagement de couverture

Les 20 actions les plus utilisées sur la GitHub Marketplace au moment du lancement. La liste est revue chaque trimestre ; une action qui sort du top 20 reste dans la matrice jusqu’à ce qu’un signal d’usage justifie son retrait.

Matrice de compatibilité

ActionÉtatNiveauRemarques
actions/checkout✅Revue du codeUtilise GITHUB_TOKEN et le point de terminaison Git de Forgejo. Aucun appel d’API propre à GitHub. Fonctionne sans changement.
actions/setup-node✅Revue du codeAction basée sur le cache d’outils. Aucun appel à l’API GitHub lorsque la version se trouve dans le cache d’outils du runner ; sinon, elle lit sa liste de versions sur api.github.com. Voir Limite de débit de l’API GitHub.
actions/setup-python✅Revue du codeMême principe de cache d’outils que setup-node, y compris la remarque sur la limite de débit de l’API GitHub.
actions/setup-go✅Revue du codeMême principe de cache d’outils, y compris la remarque sur la limite de débit de l’API GitHub.
actions/setup-java✅Revue du codeMême principe de cache d’outils. Temurin provient d’Adoptium ; seules les distributions dont la liste de versions est sur GitHub (comme le Microsoft Build of OpenJDK) appellent api.github.com, voir limite de débit de l’API GitHub.
actions/setup-dotnet✅Revue du codeMême principe de cache d’outils. Fonctionne sans modification.
actions/cache✅Revue du codeLit ACTIONS_CACHE_URL dans l’environnement du runner ; les runners fremforge la font pointer vers le propre service de cache de fremforge, cloisonné par dépôt (voir Mise en cache). Fonctionne sans changement, tout comme la mise en cache intégrée des actions setup-*.
actions/upload-artifact✅Revue du codeUtilise ACTIONS_RUNTIME_URL / l’API des artefacts. Forgejo 1.22+ implémente ce point de terminaison ; les runners fremforge utilisent une version compatible. Fonctionne sans changement.
actions/download-artifact✅Revue du codeMême API des artefacts qu’upload-artifact. Fonctionne sans changement.
docker/login-action✅Revue du codeAppelle directement le registre cible (Docker Hub, GHCR, registre personnalisé). Aucune API propre à GitHub. Fonctionne sans changement.
docker/build-push-action✅Revue du codeDocker est disponible nativement sur le runner (voir Images de runner) : cette action fonctionne d’emblée (fonctionnalités BuildKit comprises). kaniko reste préinstallé comme alternative sans démon ; voir Image de runner / Construction de conteneurs.
docker/setup-buildx-action✅Revue du codeBuildx fonctionne avec le Docker natif du runner ; les fonctionnalités BuildKit (cache-from/to, multiplateforme via QEMU) sont disponibles.
peter-evans/create-pull-request✅Revue du codeUtilise l’API REST GitHub (création de PR, push de branche) via GITHUB_API_URL, que fremforge règle sur le point de terminaison de l’API Forgejo. L’API des PR de Forgejo est compatible GitHub v3 pour l’ensemble des appels de cette action. Fonctionne sans changement.
azure/login⚠️Revue du codeVoie de fédération OIDC : l’action demande un jeton OIDC à ACTIONS_ID_TOKEN_REQUEST_URL, que les runners fremforge fournissent. Vous devez configurer un identifiant fédéré Azure AD avec l’émetteur OIDC de fremforge (https://frem.sh/_app/runner/oidc, un émetteur global unique pour toutes les organisations). Voir le guide d’intégration OIDC des runners pour les étapes. La voie nom d’utilisateur/mot de passe (creds) fonctionne sans aucune configuration OIDC.
aws-actions/configure-aws-credentials⚠️Revue du codeMême prérequis OIDC qu’azure/login. Configurez un fournisseur d’identité OIDC AWS IAM avec l’URL d’émetteur de fremforge. Voir le guide d’intégration OIDC des runners. La voie par clé d’accès statique fonctionne sans configuration OIDC.
google-github-actions/auth⚠️Revue du codeMême prérequis OIDC. Configurez un pool GCP Workload Identity Federation avec l’émetteur de fremforge. Voir le guide d’intégration OIDC des runners. L’authentification par clé de compte de service fonctionne sans configuration OIDC.
sonarsource/sonarcloud-github-action⚠️Revue du codeL’analyse et la logique de quality gate fonctionnent sans changement (appels directs à l’API SonarCloud). L’annotation en ligne des PR (publication de commentaires de revue) passe par l’API Checks de GitHub ; sa prise en charge par Forgejo est partielle, et l’annotation peut apparaître comme un statut de commit plutôt que comme des annotations en ligne. Fonctionnel pour le contrôle réussite/échec ; la densité d’annotations diffère.
dorny/paths-filter✅Revue du codeLit le diff des fichiers via la charge utile GITHUB_EVENT_PATH et des commandes Git. Aucun appel réservé à l’API GitHub. Fonctionne sans changement.
softprops/action-gh-release✅Revue du codeUtilise l’API Releases de GitHub via GITHUB_API_URL. Forgejo implémente l’API Releases. Fonctionne sans changement.
dorny/test-reporter⚠️Revue du codeAnalyse les fichiers de résultats de tests et publie un Check Run. Forgejo prend en charge les Check Runs, mais les limites d’annotations diffèrent de celles de GitHub (GitHub autorise 50 annotations par Check Run ; la limite de Forgejo peut varier selon la version). Pour les grandes suites de tests, les annotations peuvent être tronquées. Le statut réussite/échec est toujours correctement signalé.

Configuration de la fédération OIDC

Les actions qui utilisent OIDC (azure/login, aws-actions/configure-aws-credentials, google-github-actions/auth) nécessitent une configuration ponctuelle pour enregistrer fremforge comme émetteur OIDC de confiance auprès du fournisseur cloud.

Point de terminaison de découverte OIDC de fremforge : https://frem.sh/_app/runner/oidc/.well-known/openid-configuration (un point de terminaison global unique pour toutes les organisations ; la revendication iss de chaque jeton émis par un runner vaut https://frem.sh/_app/runner/oidc). L’isolation de la confiance par organisation est assurée en fixant les conditions de la politique de confiance cloud sur la revendication JWT repository_owner, le modèle compatible GitHub Actions.

Les instructions complètes, étape par étape, pour Azure AD, AWS IAM et GCP Workload Identity se trouvent dans le guide d’intégration OIDC des runners.

Construction d’images de conteneurs

docker build et docker compose s’exécutent nativement sur le runner : docker/build-push-action et docker/setup-buildx-action fonctionnent sans changement (voir Images de runner pour le modèle de runner et la disponibilité de Docker). kaniko est préinstallé comme alternative sans démon lorsque vous voulez un démarrage à froid plus rapide ou une mise en cache des couches dans un registre distant :

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

Pour une simple copie, un nouveau tag ou un push d’image entre registres, l’outil préinstallé skopeo fonctionne sans démon Docker. Voir Image de runner pour le modèle complet.

Si vous trouvez une lacune

Si vous trouvez une action Marketplace qui devrait figurer dans le top 20 et dont nous n’avons pas indiqué la compatibilité, ou une action listée ici qui ne se comporte pas comme documenté, signalez-le à support@frem.sh avec un objet commençant par MARKETPLACE COMPAT -. Nous vérifierons et mettrons la matrice à jour.

Au-delà du top 20

La plupart des autres actions Marketplace fonctionnent tout simplement. Les exceptions sont les actions qui :

  • S’appuient sur des points de terminaison internes de l’API GitHub (API Codespaces, API Copilot, API du registre de conteneurs GitHub Packages au-delà du push/pull OCI standard).
  • Codent en dur l’URL de l’émetteur OIDC de GitHub (https://token.actions.githubusercontent.com) au lieu de lire ACTIONS_ID_TOKEN_REQUEST_URL.
  • Exigent une authentification propre à GitHub au-delà de GITHUB_TOKEN.

Pour les actions non vérifiées hors du top 20 : essayez. La plupart fonctionnent. Signalez les rares qui ne fonctionnent pas ; nous fournirons une enveloppe ou documenterons la lacune dans les guides de migration.

Voir aussi

  • Images de runner : les étiquettes de runner disponibles et l’image associée à chacune.
  • Intégration OIDC des runners : configurer la confiance du fournisseur cloud pour les actions d’authentification basées sur OIDC.
  • Guides de migration : comment les références aux actions Marketplace sont migrées lors d’un changement de plateforme.
  • API REST publique : la surface de l’API fremforge pour les actions qui doivent rappeler la plateforme.