Jenkins
Usa questa pipeline dichiarativa su un agente Linux con Docker disponibile:
pipeline {
agent any
options {
buildDiscarder(logRotator(daysToKeepStr: '30', artifactDaysToKeepStr: '30'))
}
stages {
stage('Scan for malware') {
steps {
sh '''
mkdir -p amwscan-output
docker run --rm \
--volume "$WORKSPACE:/scan:ro" \
--volume "$WORKSPACE/amwscan-output:/output" \
marcocesarato/php-antimalware-scanner:latest /scan \
--lite --report-only --report-format=sarif \
--path-report=/output/amwscan-report.sarif \
--disable-checksum --disable-definitions-update
'''
}
}
}
post {
always {
archiveArtifacts artifacts: 'amwscan-output/amwscan-report.sarif', allowEmptyArchive: true
}
}
}
L'area di lavoro viene montata in sola lettura. La directory di output separata rimane scrivibile, così Jenkins può archiviare il report SARIF dopo che un rilevamento ha causato l'errore dello stage di scansione. La pipeline conserva i report per 30 giorni.