pipeline { // agent { node { label 'podman && trivy && aws' } } agent { node { label 'podman' } } stages { stage('Build'){ steps { sh 'make build' } } stage('Scan'){ environment { TRIVY_TEMPLATE = "@${env.JENKINS_AGENT_WORKDIR}/html.tpl" TRIVY_FORMAT = "template" TRIVY_OUTPUT = "reports/trivy.html" } steps { // Scan via trivy sh 'mkdir -p reports' sh 'env' sh 'make scan' sh 'ls -laR reports' publishHTML target : [ allowMissing: true, alwaysLinkToLastBuild: true, keepAll: true, reportDir: 'reports', reportFiles: 'trivy.html', reportName: 'TrivyScan', reportTitles: 'TrivyScan' ] // Scan again and fail on CRITICAL vulns sh 'TRIVY_EXIT_CODE=1 TRIVY_SEVERITY=CRITICAL make scan' } } stage('Push'){ steps { sh 'echo make push' } } } }