From c2dbeadc96934d1c155336e18b1b1f745017bf32 Mon Sep 17 00:00:00 2001 From: jenkins Date: Tue, 21 Apr 2026 22:09:06 -0300 Subject: [PATCH] ci(atlasbot): run sonar and supply-chain scans --- Jenkinsfile | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index bbbd74c..2762dab 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,6 +52,14 @@ spec: volumeMounts: - name: workspace-volume mountPath: /home/jenkins/agent + - name: quality-tools + image: registry.bstein.dev/bstein/quality-tools:sonar8.0.1-trivy0.70.0-arm64 + command: + - cat + tty: true + volumeMounts: + - name: workspace-volume + mountPath: /home/jenkins/agent volumes: - name: docker-config-writable emptyDir: {} @@ -91,6 +99,27 @@ spec: } stage('Collect SonarQube evidence') { steps { + container('quality-tools') { + sh '''#!/usr/bin/env bash + set -euo pipefail + mkdir -p build + args=( + "-Dsonar.host.url=${SONARQUBE_HOST_URL}" + "-Dsonar.token=${SONARQUBE_TOKEN}" + "-Dsonar.projectKey=${SONARQUBE_PROJECT_KEY}" + "-Dsonar.projectName=${SONARQUBE_PROJECT_KEY}" + "-Dsonar.sources=." + "-Dsonar.exclusions=**/.git/**,**/build/**,**/dist/**,**/node_modules/**,**/.venv/**,**/__pycache__/**,**/coverage/**,**/test-results/**,**/playwright-report/**" + "-Dsonar.test.inclusions=**/tests/**,**/testing/**,**/*_test.go,**/*.test.ts,**/*.test.tsx,**/*.spec.ts,**/*.spec.tsx" + ) + [ -f build/coverage.xml ] && args+=("-Dsonar.python.coverage.reportPaths=build/coverage.xml") + set +e + sonar-scanner "${args[@]}" | tee build/sonar-scanner.log + rc=${PIPESTATUS[0]} + set -e + printf '%s\n' "${rc}" > build/sonarqube-analysis.rc + ''' + } container('tester') { sh ''' set -euo pipefail @@ -128,6 +157,34 @@ PY } stage('Collect Supply Chain evidence') { steps { + container('quality-tools') { + sh '''#!/usr/bin/env bash + set -euo pipefail + mkdir -p build + set +e + trivy fs --no-progress --format json --output build/trivy-fs.json --scanners vuln,secret,misconfig --severity HIGH,CRITICAL . + trivy_rc=$? + set -e + if [ ! -s build/trivy-fs.json ]; then + cat > build/ironbank-compliance.json < build/ironbank-compliance.json + ''' + } container('tester') { sh ''' set -euo pipefail