Jenkins
AppArch n’a ni plugin Jenkins ni modèle propre à Jenkins. Sur Jenkins, vous lancez le conteneur du collector avec docker run - la même image que sur toute autre CI. La connexion Git elle-même est un identifiant normal (GitHub, GitLab, Bitbucket ou Azure DevOps).
Identifiants Jenkins
Section intitulée « Identifiants Jenkins »Sous Manage Jenkins → Credentials, créez :
- Un Secret text
APPARCH_TOKEN- le jeton runner du projet (voir Enregistrer un projet). - Un Username with password
apparch-hub- nom d’utilisateur = identifiant de l’installation, mot de passe = clé de l’installation. C’est lui qui tire l’image depuishub.apparch.io; le jeton de projet n’est pas un identifiant de registre.
L’agent a besoin de Docker.
Pipeline
Section intitulée « Pipeline »pipeline { agent any environment { APPARCH_TOKEN = credentials('APPARCH_TOKEN') } stages { stage('AppArch') { steps { withCredentials([usernamePassword(credentialsId: 'apparch-hub', usernameVariable: 'HUB_USER', passwordVariable: 'HUB_KEY')]) { sh 'echo "$HUB_KEY" | docker login hub.apparch.io -u "$HUB_USER" --password-stdin' } sh ''' PR_ARGS="" if [ -n "$CHANGE_ID" ]; then PR_ARGS="-e APPARCH_Collector__Provider__Type=gitlab \ -e APPARCH_Collector__Provider__ProjectId=group/project \ -e APPARCH_Collector__Provider__PullRequestId=$CHANGE_ID" fi docker run --rm -v "$WORKSPACE:/workspace:ro" \ -e APPARCH_Collector__Token="$APPARCH_TOKEN" \ -e APPARCH_Collector__ApiUrl="https://api.yourdomain.com" \ $PR_ARGS \ hub.apparch.io/collectors/dotnet:latest /workspace ''' } } }}Revue de PR ou analyse complète
Section intitulée « Revue de PR ou analyse complète »Jenkins n’expose pas les variables de merge request du fournisseur ; le runner ne peut pas détecter une PR seul. Vous transmettez le contexte explicitement :
| Variable | Valeur |
|---|---|
APPARCH_Collector__Provider__Type | gitlab, github, bitbucket ou azuredevops |
APPARCH_Collector__Provider__ProjectId | Le dépôt chez le fournisseur, par ex. group/project |
APPARCH_Collector__Provider__PullRequestId | Le numéro de PR / MR ($CHANGE_ID dans un pipeline multibranche) |
Facultatif : APPARCH_Collector__Provider__BaseUrl, __WebUrl, __BaseSha, __StartSha, __HeadSha, __Title, __Author.
- Avec ces variables, l’exécution est une revue de PR (ArchPilot plus un enregistrement ArchScan).
- Sans elles, c’est une analyse complète (ArchScan et ArchSecurity).
Faire échouer le build
Section intitulée « Faire échouer le build »Ajoutez --fail-on <niveau> après /workspace (critical, error, warning ou info), ou définissez APPARCH_FAIL_ON. S’il existe un constat à ce niveau ou au-dessus, le collector se termine avec le code 4 après l’envoi de tous les résultats, et Jenkins marque l’étape en échec. Si aucun des deux n’est défini, le niveau fail-on configuré dans le panneau pour l’espace de travail s’applique ; s’il n’y en a pas non plus, les constats ne font jamais échouer l’étape.
Pour les autres systèmes de CI : Ajouter le runner à la CI.