7

ビルドが不安定になったり、失敗したり、再び成功したりしたときに、元の Jenkins の動作 (通知の送信など) をエミュレートしたいと考えています。

そのためには、以前のビルド ステータスを照会する必要があります。これは次のように実行できます。

currentBuild.rawBuild.getPreviousBuild()?.getResult().toString()

ただし、rawBuild「危険な」オブジェクトであると想定されているため、ブラックリストに登録されており、Groovy サンドボックス内で実行することはできません

現在、SCM から Jenkins スクリプトをロードしているため、プロジェクトごとのレベルで Groovy サンドボックスを非アクティブ化する方法はありませんが、Jenkins インスタンス全体に対してのみ (つまり、 this を介して)、これは確かに何かではありません。私が欲しい。

私が見逃した、サンドボックスの原則に準拠した (Jenkins の REST API を介してステータスをクエリするなどのハックを含まない) ジョブの最後のビルド ステータスを判断する他の方法はありますか?

4

2 に答える 2

4

ビルドに乗った後、 Manage Jenkins > In-process Script ApprovalgetRawBuildからメソッドを承認すれば、groovy サンドボックスでも次のビルドからメソッドを使用できます。RejectedAccessException

さらに、スクリプトの各メソッドに対して例外を取得した後、1 つずつ承認getRawBuildする必要があります。getPreviousBuildgetResult

于 2016-11-04T15:06:25.983 に答える