一尘不染

如何使Jenkins / Hudson的工作在其他职位上工作并决定是否建立?

jenkins

问题

鉴于所有作业LEVEL_X的工作名称中都包含字符串,其中X是数字>1。我希望X = n的每个作业监视具有的每个作业X = n-1,并在每个作业成功完成后开始构建。我希望X = n每隔1分钟对其他工作进行监视。

首先,我想知道最好的方法是什么,其次,我希望解决方案是否可以通过一个小的脚本(可能是一个可以system groovy script使用Groovy
PLUGIN 运行的常规脚本)来实现。


阅读 274

收藏
2020-07-25

共1个答案

一尘不染

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

  • 那里有一个Groovy脚本控制台http://<jenkins-server>/script,它将帮助您调试脚本。
  • 这里是Jenkins Java API的链接。
  • 输出所有作业名称的代码段:
        def hi = hudson.model.Hudson.instance
       hi.getItems(hudson.model.Project).each {project ->
       println(project.displayName)
    }
  • 代码段提取nLEVEL_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版本,事情会变得有些麻烦。但是只要您不这样做就足够了。

2020-07-25