Jenkinsでビルドが成功したか失敗した場合に、シェルスクリプトを実行しようとしています。ターゲットの実行を除いて、いくつかのシェルスクリプトを実行するためのビルド後のこのオプションが表示されません。
回答:
Groovy Post Buildを使用して任意のコマンドを実行することもできます。これにより、コマンドの実行時期などを細かく制御できます。ビルドが失敗したり不安定になったりした場合に、これを使用して「fingerofblame」シェルスクリプトを実行します。
if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE")
lastStableBuild = item.getLastStableBuild()
lastStableDate = lastStableBuild.getTime()
formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a")
now = new Date()
formattedNow = now.format("MM/dd/yyyy h:mm:ss a")
command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"]
manager.listener.logger.println "FOB Command: ${command}"
manager.listener.logger.println command.execute().text
}
(私たちのコマンドは、最後の安定したビルド日付と現在の時刻をパラメーターとして受け取るので、誰がビルドを壊した可能性があるかを調査できますが、同様の方法で好きなコマンドを実行できます)
私があなたの質問を正しく読んでいるなら、あなたはビルドのビルド後のアクション部分でスクリプトを実行したいと思うでしょう。
私自身、ビルドがアーティファクトをアーカイブし、テスト結果を公開した後に実行するためにPostBuildScriptプラグインを使用していgit clean -fxd
ます。私のJenkinsスレーブにはSSDディスクがあるため、生成されたファイルをワークスペースに保持する余地がありません。
バッチタスクプラグインでそれを行うことができるはずです。
ビルド後のシェルスクリプトを個別のJenkinsジョブとして設定し、ビルド後のステップとしてトリガーする必要があります。標準の「他のプロジェクトをビルドする」オプションは、トリガービルドが成功した場合にのみ機能するため、ParameterizedTriggerプラグインを使用する必要があるようです。