11

問題

すべてのジョブのジョブ名に文字列LEVEL_Xが含まれているとします。ここで、X は数値 > 1 です。X = n のすべてのジョブでX = n-1、すべてのジョブを で監視し、それぞれが成功した場合に構築を開始します。そしてX = n、1分間隔で他のジョブを監視するジョブが欲しいです。

まず第一に、それを行うための最良の方法を知ることに興味があります.2番目に、小さなスクリプト、おそらくsystem groovy scriptGROOVY PLUGIN を使用して実行できる groovy スクリプトで実装できる場合の解決策が必要です。

4

1 に答える 1

45

いくつかのヒントとコード スニペットを次に示します。

  • http://<jenkins-server>/scriptには、スクリプトのデバッグに役立つGroovy Script コンソールがあります。
  • Jenkins Java APIへのリンクは次のとおりです。
  • すべてのジョブ名を出力するコード スニペット:

    def hi = hudson.model.Hudson.instance
       hi.getItems(hudson.model.Project).each {project ->
       println(project.displayName)
    }
    
  • nから抽出するコード スニペットLEVEL_n(クロージャとして実装):

    def level = { name ->
      def ret = 0
      name.eachMatch(~'LEVEL_([1-9]+[0-9*])', {ret = it[1].toInteger()})
      return ret
    }
    
  • すべての最新ビルドのステータスを取得するコード スニペット:

    def hi = hudson.model.Hudson.instance
    hi.getItems(hudson.model.Project).each {project ->
      println(project.lastBuild.result)
    }
    
  • ビルドを開始するメソッドへのリンク。

注: Matrix ビルドを使用している場合は、少し複雑になります。しかし、そうでない限り、これで十分です。

于 2012-05-28T08:56:00.100 に答える