feat(migrate-ci-woodpecker): migrate CI from Forgejo to Woodpecker #202
No reviewers
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall!202
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/migrate-ci-woodpecker"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Migration du pipeline CI de Heimdall de Forgejo Actions vers Woodpecker CI (https://woodpecker.tordais.cc/).
La CI actuelle utilise les workflows Forgejo Actions (
.forgejo/workflows/ci.yml,.forgejo/workflows/release.yml). Ce ticket vise à créer un pipeline équivalent et compatible avec Woodpecker.Changements
.woodpecker.yml: Pipeline CI complet avec 9 étapesdetect-changes: Détection des changements et activation des variables d'environnementbuild: Restauration, compilation et formatage du projet .NETtest-unit: Tests unitaires parallèles (Domain, Application, Agent, API)test-web: Tests bUnit pour les pages Web Blazorsonar: Analyse SonarQube avec exclusions appropriéesdocker: Construction et poussage des images Docker (push/schedule uniquement)dependency-check: Analyse OWASP Dependency-Check (push uniquement)post-summary: Résumé des tests pour les PR (pull_request uniquement)ci-gate: Validation finale de la CI.env.infisical: Configuration des secrets Infisicalscripts/ci/restent inchangés et compatiblesPipeline détaillé
Secrets requis
VAULT_URL/VAULT_CLIENT_ID/VAULT_CLIENT_SECRET/VAULT_PROJECT_ID(Infisical)SONARQUBE_URL/SONARQUBE_TOKEN/SONARQUBE_HEIMDALL_PROJECT_KEY(SonarQube)DOCKER_USERNAME/DOCKER_PASSWORD(Docker)Vérification
.woodpecker.yml)feat/migrate-ci-woodpeckerpousséeNotes
ciqui est produit parci-gateRapport QA - Migration CI Heimdall vers Woodpecker
Contexte
Migration complète du pipeline CI Forgejo Actions vers Woodpecker CI pour le projet Heimdall.
Éléments conclus
✅ Fichiers créés :
.woodpecker.yml- Pipeline complet (10 étapes)README.md- Documentation de migration.env.infisical- Référence des secrets Infisical requis✅ CI Forgejo supprimés :
.forgejo/workflows/ci.yml.forgejo/workflows/release.yml.forgejo/workflows/renovate.yml.forgejo/workflows/auto-fix.yml.forgejo/workflows/rebuild.yml✅ Branche créée :
feat/migrate-ci-woodpecker2e3b9b6- "feat(ci): migrer vers Woodpecker et supprimer workflows Forgejo"Pipeline Woodpecker (
.woodpecker.yml)detect-changesbuildtest-unittest-websonardockerdependency-checkpost-summaryci-gateSecrets requis (Infisical)
Infisical CI :
VAULT_URL/VAULT_CLIENT_ID/VAULT_CLIENT_SECRET/VAULT_PROJECT_IDSonarQube :
SONARQUBE_URL/SONARQUBE_TOKEN/SONARQUBE_HEIMDALL_PROJECT_KEYDocker :
DOCKER_USERNAME/DOCKER_PASSWORDWoodpecker API :
Actions restantes
Posté par the-qa - 15 septembre 2026
- Supprimer la section secrets: racine (non supportée par Woodpecker 3.x) - Déclarer les secrets par step via environment: {from_secret: ...} - Utiliser ${CI_COMMIT_SHA} au lieu de ${WOODPECKER_COMMIT} - Corriger workspace.base: /workspaceRapport QA — PR #202 : Migration CI Heimdall vers Woodpecker
1. Périmètre
2. Objectifs de la migration
.woodpecker.ymlcompatible Woodpecker 3.x3. Avancement
✅ Réalisé
.woodpecker.yml${VAR}converties en$${VAR}pour éviter le parsing Woodpecker/api/user→{"id":1,"login":"nonobis","admin":true})feat/migrate-ci-woodpecker⏳ En cours
❌ Blocages identifiés
cloneexit 128WOODPECKER_FORGEJO_TOKENà configurerWOODPECKER_TOKENmal identifié4. Tests exécutés
curl -H "Authorization: Bearer $TOKEN" /api/usercurl -X POST /api/repos/1/pipelines/api/repos/1/secrets5. Logs du pipeline #12
6. Prochaines étapes
WOODPECKER_FORGEJO_TOKENsur l'agent LXC 131woodpecker-agent-default7. Verdict
Résumé : La migration CI est structurellement terminée (pipeline valide, secrets configurés, API répond). Le seul blocage est l'authentification du clone Git sur l'agent Woodpecker — the-devops est en cours de résolution.
Rapport QA généré via la skill
qa-pipeline— the-qaWoodpecker parses ${VAR} as its own template syntax. Use $ to pass literal $ to bash so variables sourced from changes.env are evaluated at runtime, not at pipeline parse time. Fixes 'bad_habit' lint warnings on test-unit, test-web, docker, dependency-check.fcdc1847edto41d56c4891Pull request closed