11

问题

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

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

4

1 回答 1

45

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

  • 有一个 Groovy 脚本控制台http://<jenkins-server>/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 回答