groovy - 如何让 Jenkins/Hudson 工作监视其他一些工作并决定是否建立?

标签 groovy hudson jenkins hudson-plugins jenkins-plugins

问题

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

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

最佳答案

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

  • http://<jenkins-server>/script 有一个 Groovy 脚本控制台这将帮助您调试脚本。
  • 这是指向 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)
    }
    
  • 链接到 starts a build 的方法.

  • 注意:如果您使用 Matrix 构建,事情会变得有点棘手。但只要你不这样做就足够了。

    关于groovy - 如何让 Jenkins/Hudson 工作监视其他一些工作并决定是否建立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10777663/

    相关文章:

    unit-testing - Grails/Spock 单元测试

    ruby - 我如何在 Debian 上使用带 Hudson CI 服务器的 RVM?

    version-control - Hudson——从多个版本控制系统中获取源代码

    svn - 具有多个模块的 Jenkins 和 Subversion 插件 - 避免删除

    jenkins - 在 Jenkins 中是否有任何替代方案可以促进构建

    grails - Grails dbm-update中的异常-NoSuchBeanDefinitionException

    groovy - Groovy 中是否自动定义了访问器/修改器?

    unit-testing - 持续集成(Hudson/Jenkins)和R编程

    新用户的用户配置中缺少 Jenkins 'Add new Token' 按钮

    grails - Logback Groovy配置在生产中不起作用