No description
| .forgejo/workflows | ||
| docker-compose.ci.yml | ||
| Dockerfile.ci | ||
| README.md | ||
ci — workflows réutilisables
Dépôt public de définitions de CI réutilisables. Contient uniquement de la logique d'intégration continue : aucun secret, aucun code applicatif, aucune donnée. Public par nécessité technique (Forgejo n'autorise les workflows réutilisables que depuis un dépôt public). Les dépôts qui l'appellent restent privés.
Workflows disponibles
| Workflow | Rôle | Pour |
|---|---|---|
secret-scan.yml |
Barrière anti-secrets (gitleaks, dernière version au runtime) | tout dépôt |
php-mago.yml |
Qualité PHP : format + lint + analyse statique (Mago) | dépôts PHP |
php-tests.yml |
Tests unitaires PHPUnit (input framework) |
dépôts PHP |
Utilisation
Dans le dépôt appelant, .forgejo/workflows/ci.yml :
on: [push, pull_request]
jobs:
secrets:
uses: vivi/ci/.forgejo/workflows/secret-scan.yml@v1
mago:
uses: vivi/ci/.forgejo/workflows/php-mago.yml@v1
tests:
uses: vivi/ci/.forgejo/workflows/php-tests.yml@v1
with:
framework: laravel
Chaque uses: tourne comme un job indépendant : l'un peut échouer sans bloquer les autres.
Notes
.gitleaks.toml: à placer dans chaque dépôt appelant (pour son allowlist, ex..env.example). gitleaks le détecte automatiquement ; absent, il applique ses règles par défaut.- Versionnage : les appelants épinglent un tag (
@v1). Créer un tagv1sur ce dépôt après validation ; passer à@v2dépôt par dépôt lors d'un changement cassant. php-ci: label runner → image de basevivien-lab-ci:1.0(PHP 8.4 + Composer + Node). Mago et gitleaks ne sont pas dans l'image : ils sont installés enlatestau runtime par les workflows (méthode B).- Image de base : définie ici (
Dockerfile.ci+docker-compose.ci.yml). Reconstruire :docker compose -f docker-compose.ci.yml build. Locale au VPS ; si undocker prunela supprime, la CI échoue (« Start image=vivien-lab-ci:1.0 ») → rebuild.