Jenkins: Maven リリースの完了後に他のジョブをトリガーする

Jenkins: Maven リリースの完了後に他のジョブをトリガーする

m2release プラグインを使用して Maven ジョブを設定しました。ジョブは完璧に実行されます。

  • アプリケーションの構築
  • リリースバージョンの構築
  • アーティファクトリーに公開する

それは素晴らしいことです。

ここで、何かをリリースするたびに、2 番目のジョブがトリガーされ、成果物がサーバーにデプロイされるようにしたいと考えています。

それを実行する方法が見つかりません。

Groovy スクリプトを記述しようとしましたが、リリース実行を実行していることを識別できません。

PS: Groovy でスクリプトをトリガーする方法をここで見つけました:https://wiki.jenkins-ci.org/display/JENKINS/Groovy+プラグイン

答え1

最終的に、出力ログのバージョン番号のログを解析しました。

// Initialize some stuff
def build = Thread.currentThread().executable
def log = manager.build.logFile.text

// We are looking for maven parameter -DreleaseVersion=1.1.1 (space at the end)
def versionFinder = log =~ /-DreleaseVersion=([0-9]+\.[0-9]+\.[0-9]+) /

def RELEASE_VERSION=""
if (versionFinder.size() > 0) {
  RELEASE_VERSION=versionFinder.getAt(0)[1];
}

if (RELEASE_VERSION > "") {
  manager.listener.logger.println("Release version: " + RELEASE_VERSION);
  // Continue with release script
  // For example, here: // https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin
}

関連情報