如何让詹金斯/哈德森的工作监视其他一些工作,并决定是否建立?

Gog*_*ogi 10 groovy hudson hudson-plugins jenkins jenkins-plugins

问题

鉴于所有工作都有字符串LEVEL_X在其工作名称中,其中X是一个数字> 1.我希望每个工作用X = n监视每个工作X = n-1,并开始构建,如果每个工作都成功完成.我希望这项工作以X = n1分钟的间隔监视其他工作.

首先,我有兴趣知道最好的方法是什么,其次我想要解决方案,如果一个可以通过一个小脚本实现,也许是一个可以system groovy script使用GROOVY PLUGIN 运行的groovy脚本.

mal*_*cot 43

以下是一些提示和代码片段:

  • 有一个Groovy Script控制台http://<jenkins-server>/script可以帮助您调试脚本.
  • 这是Jenkins Java API的链接.
  • 输出所有作业名称的代码段:

    def hi = hudson.model.Hudson.instance
       hi.getItems(hudson.model.Project).each {project ->
       println(project.displayName)
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • n从中提取的代码片段LEVEL_n(实现为闭包):

    def level = { name ->
      def ret = 0
      name.eachMatch(~'LEVEL_([1-9]+[0-9*])', {ret = it[1].toInteger()})
      return ret
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 获取所有最新版本的状态的代码段:

    def hi = hudson.model.Hudson.instance
    hi.getItems(hudson.model.Project).each {project ->
      println(project.lastBuild.result)
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 链接到启动构建的方法.

注意:如果您使用Matrix构建,事情会变得更加繁琐.但只要你不这样就应该够了.

  • jenkins服务器脚本url的+1 - 节点groovy控制台毫无价值,因为它不会导入所有类. (2认同)