Jenkins配置 - 用于监视分支中特定目录的svn URL

时间:2013-09-12 21:42:25

标签: svn url jenkins

我查看了由此产生的“可能已经有您答案的问题”以及Google搜索的许多变体。 发现使用不同解决方案的2个方案,这些方案不符合我们的需求。 - Build from trunk or branches” - SVN URL variables 我想要实现的最终结果是监控所有分支机构下的特定项目的单个作业。 例如,签入svn://svn.host/branches/*/project/code/place会触发构建。 我试图用正则表达式对svn URL进行通配符,并继续接收URL无效的通知。 有没有人能够配置一个监视多个分支下的特定目录的Jenkins作业? 提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您希望监视一组有限的分支,则可以使用SVN配置中的“添加更多位置”按钮单独定义它们。

如果您的配置更复杂,那么您可以通过使用Job DSL Plugin重新配置主要作业来完成此任务,这样可以使用groovy重新配置作业

def branches

"svn ls svn://XXX/branches/".execute().with { br ->
  branches  = text.split()
  br.waitFor()
}

job{
  using "__xxxxx" //important or it replaces job with only svn entries
  name  "__xxxxx"
  scm{

    svn( 'svn://XXX/trunk/a/bit/deeper', 'trunk')
    {
      branches.each(){ br ->
        it / locations << 'hudson.scm.SubversionSCM_-ModuleLocation' {
          remote "svn://XXX/branches/${br}/a/bit/deeper"
          local "${br}"
        }
      }
    }
  }
}