No description
Find a file
2026-07-24 14:54:25 +02:00
.forgejo/workflows ci: workflows réutilisables (secret-scan, php-mago, php-tests) 2026-07-18 13:10:43 +02:00
docker-compose.ci.yml Actualiser docker-compose.ci.yml 2026-07-24 14:54:25 +02:00
Dockerfile.ci ci: centralise l'image de base (Dockerfile.ci + docker-compose.ci) 2026-07-18 14:06:13 +02:00
README.md ci: centralise l'image de base (Dockerfile.ci + docker-compose.ci) 2026-07-18 14:06:13 +02:00

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 tag v1 sur ce dépôt après validation ; passer à @v2 dépôt par dépôt lors d'un changement cassant.
  • php-ci : label runner → image de base vivien-lab-ci:1.0 (PHP 8.4 + Composer + Node). Mago et gitleaks ne sont pas dans l'image : ils sont installés en latest au 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 un docker prune la supprime, la CI échoue (« Start image=vivien-lab-ci:1.0 ») → rebuild.