web-dev-qa-db-ja.com

Jenkinsでポストビルド後にシェルスクリプトを実行する

Jenkinsでビルド後にビルドが成功または失敗した場合、シェルスクリプトを実行しようとしています。ターゲットを実行する以外のシェルスクリプトを実行するビルド後のオプションは表示されません。

75
kforkarim

ビルド後タスク プラグインで非常に簡単に行えます。

Jenkins - "Post build task" option

63

Groovy Post Build -を使用して任意のコマンドを実行することもできます。これにより、コマンドの実行時期などを詳細に制御できます。失敗または不安定なビルドの場合、「非難の指」シェルスクリプトを実行するためにそれを使用します。

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
}

(私たちのコマンドは、最後の安定したビルド日付と現在の時間をパラメーターとして取るため、ビルドを壊した可能性のある人を調査することができますが、同様の方法で好きなコマンドを実行できます)

9
crovers

あなたの質問を正しく読んでいるなら、ビルドのビルド後のアクション部分でスクリプトを実行したいでしょう。

私自身は PostBuildScriptプラグイン を使用して、ビルドがアーティファクトをアーカイブし、テスト結果を公開した後にgit clean -fxdを実行します。私のJenkinsスレーブにはSSDディスクがあるため、生成されたファイルをワークスペースに保持するスペースがありません。

5
sti

バッチタスクプラグイン を使用して、これを実行できるはずです。

  1. プロジェクトでバッチタスクを作成します。
  2. 同じプロジェクトを選択する「バッチタスクの呼び出し」ビルド後オプションを追加します。

ビルド後タスク プラグインも可能です。

3
Carlo Bonamico

ビルド後のシェルスクリプトを個別のJenkinsジョブとして設定し、ビルド後の手順としてトリガーする必要があります。 Parameterized Trigger Plugin を使用する必要があるようです。標準の「他のプロジェクトのビルド」オプションは、ビルドのトリガーが成功した場合にのみ機能するためです。

1
gareth_bowles