currentBuild.rawBuildは、認証済ライブラリか管理者に許可されたスクリプトからしか利用できない注釈がある。
Run with further APIs, only for trusted libraries or administrator-approved scripts outside the sandbox;
JenkinsのWebUI上でスクリプトを書いた場合、問題が起こったときにプログラムを参照しづらいし、そもそも履歴とかないから書き換えるのが恐いので、できればGitで管理したかった。
しかしGitからチェックアウトすると実行前に管理者が承認というフローができなくなり、且つ設定にはUse Groovy Sandbox
に該当する設定がないので、sandbox外で実行することもできない。
解決策
Jenkinsの設定はWebUI上で記述するスクリプトにして、次のようなコードでGitから取得して対象のスクリプトファイルを実行するようにする。
node {
git url: 'リポジトリURL', credentialsId: '必要な認証のID'
load 'path/to/script.groovy'
}
Jenkinsの確認フローは壊れるが、Git側の管理で(githubならPRをマージできる人を限定するとか)十分かなと思う。