# RF_ACTIONS Actions Gitea partagées par les projets de Raggaroth Factory. Ce dépôt est **public parce qu'il doit l'être** : `act_runner` télécharge les actions appelées par `uses:` sans s'authentifier, et un dépôt privé lui répond « repository not found ». Il ne contient donc que le code des actions — rien qui décrive l'infrastructure qui les exécute. Cette description, les décisions et la procédure d'installation du runner vivent dans RF_CICD, qui reste privé. **Règle qui en découle** : rien de propre à une machine, un compte ou un chemin de l'infrastructure n'entre ici. Et aucun secret, jamais — ils arrivent par les entrées des actions, depuis les secrets du dépôt appelant. ## `build-push` Construit une image avec **buildah**, sans démon ni socket, et la publie dans le registre de Gitea sous les tags de sa filière. **Ne déploie rien.** ```yaml - uses: https://gitea.raggaroth-factory.fr/public/RF_ACTIONS/build-push@main with: image: gitea.raggaroth-factory.fr/raggaroth-factory/ dockerfile: Dockerfile context: . registry_user: ${{ secrets.REGISTRY_USER }} registry_password: ${{ secrets.REGISTRY_PASSWORD }} ``` | Déclencheur | Tags publiés | |---|---| | poussée sur `develop` | `:dev` et `:` | | tag `vX.Y.Z` (ou `vX.Y.Z-rc.1`) | `:vX.Y.Z`, orthographié comme le tag git, et rien d'autre | | toute autre référence | **échec**, sans rien construire | Sorties : `tags` (les tags publiés) et `digest` (l'empreinte `sha256:…` de l'image publiée). **Exigences** : l'image du conteneur de job doit porter `buildah`. L'action construit avec `--storage-driver vfs --isolation chroot`, ce qui fonctionne dans un conteneur non privilégié, sans capacité ajoutée ni `/dev/fuse`. Les `FROM` des Dockerfiles construits doivent être des **noms complets** (`docker.io/library/nginx:alpine`, pas `nginx:alpine`) : buildah n'a pas de registre de recherche par défaut, et sa table d'alias est incomplète. **Toujours `uses:` en URL complète** : la forme courte `public/RF_ACTIONS/…` serait résolue contre le serveur d'actions par défaut de l'instance, qui n'est pas forcément celle-ci.