👷 L'action build-push s'installe dans un dépôt public (raggaroth-factory/RF_CICD#3)
Premier vrai run, PRJ002-ScrumBoard-Backend run 31 : act_runner clone les actions de « uses: » sans s'authentifier, et RF_CICD étant privé, Gitea répond « repository not found ». L'action déménage ici, dans l'organisation « public » — un dépôt public dans « raggaroth-factory » resterait invisible, l'organisation elle-même l'étant aux anonymes. Reprise de RF_CICD/actions/build-push telle qu'éprouvée, moins ce qui décrivait l'infrastructure : le tag de l'image de job et le chemin de son Containerfile quittent le message d'erreur, et les fichiers temporaires perdent leur préfixe rf-cicd. Le README pose la règle qui en découle : rien de propre à une machine, un compte ou un chemin n'entre dans ce dépôt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyxLNGHojdXeRMQgWFgzRV
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# 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/<nom-de-l-image>
|
||||
dockerfile: Dockerfile
|
||||
context: .
|
||||
registry_user: ${{ secrets.REGISTRY_USER }}
|
||||
registry_password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
```
|
||||
|
||||
| Déclencheur | Tags publiés |
|
||||
|---|---|
|
||||
| poussée sur `develop` | `:dev` et `:<sha court, 12 caractères>` |
|
||||
| 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.
|
||||
|
||||
Reference in New Issue
Block a user