Jenkins
AppArch no tiene plugin de Jenkins ni plantilla específica para Jenkins. En Jenkins se ejecuta el contenedor del collector con docker run, la misma imagen que en cualquier otra CI. La conexión Git en sí es una credencial normal (GitHub, GitLab, Bitbucket o Azure DevOps).
Credenciales de Jenkins
Sección titulada «Credenciales de Jenkins»En Manage Jenkins → Credentials crea:
- Un Secret text
APPARCH_TOKEN: el token de runner del proyecto (consulta Registrar un proyecto). - Un Username with password
apparch-hub: usuario = id de la instalación, contraseña = clave de la instalación. Es lo que descarga la imagen dehub.apparch.io; el token de proyecto no es una credencial del registro.
El agente necesita Docker.
Pipeline
Sección titulada «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 ''' } } }}Revisión de PR o análisis completo
Sección titulada «Revisión de PR o análisis completo»Jenkins no expone las variables de merge request del proveedor; el runner no puede detectar una PR por sí solo. El contexto se pasa de forma explícita:
| Variable | Valor |
|---|---|
APPARCH_Collector__Provider__Type | gitlab, github, bitbucket o azuredevops |
APPARCH_Collector__Provider__ProjectId | El repositorio en el proveedor, p. ej. group/project |
APPARCH_Collector__Provider__PullRequestId | El número de PR / MR ($CHANGE_ID en un pipeline multibranch) |
Opcionales: APPARCH_Collector__Provider__BaseUrl, __WebUrl, __BaseSha, __StartSha, __HeadSha, __Title, __Author.
- Con estas variables, la ejecución es una revisión de PR (ArchPilot más un registro de ArchScan).
- Sin ellas, es un análisis completo (ArchScan y ArchSecurity).
Hacer fallar el build
Sección titulada «Hacer fallar el build»Añade --fail-on <nivel> después de /workspace (critical, error, warning o info), o define APPARCH_FAIL_ON. Si hay un hallazgo de ese nivel o superior, el collector termina con el código 4 después de enviar todos los resultados y Jenkins marca la etapa como fallida. Si no se define ninguno de los dos, se aplica el nivel fail-on configurado en el panel para el espacio de trabajo; si tampoco hay uno allí, los hallazgos nunca hacen fallar el paso.
Para otros sistemas de CI: Añadir el runner a la CI.