メインコンテンツまでスキップ
バージョン: 最新

Jenkins

Docker が利用できる Linux エージェントで、この宣言型パイプラインを使用します。

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
}
}
}

ワークスペースは読み取り専用でマウントされます。個別の出力ディレクトリは書き込み可能なままなので、検出結果によってスキャンステージが失敗した後も Jenkins は SARIF レポートをアーカイブできます。パイプラインはレポートを 30 日間保持します。