一尘不染

如何配置通过轮询SubVersion触发的Jenkins管道?

jenkins

我们一直在使用Jenkins进行持续集成。一个典型的构建作业在“源代码管理”部分中指定SVN存储库和凭据,然后在“构建触发器”部分中启用“轮询SCM”,轮询时间表为每10分钟(H
/ 10 * * ) 。我们已经更新到Jenkins的最新版本,并且正在寻求建立管道版本。典型的管道脚本如下所示:

node {
    stage 'Build'
    build job: 'MyApplication Build'
    stage 'Deploy to test environment'
    build job: 'MyApplication Deploy', parameters: [
        [$class: 'StringParameterValue', name: 'DatabaseServer', value: 'DatabaseServer1'],
        [$class: 'StringParameterValue', name: 'WebServer', value: 'WebServer1']
    ]
    stage 'RunIntegrationTests'
    build job: 'MyApplication Test', parameters: [
        [$class: 'StringParameterValue', name: 'DatabaseServer', value: 'DatabaseServer1'],
        [$class: 'StringParameterValue', name: 'WebServer', value: 'WebServer1']
    ]
}

当手动触发管道作业时,一切运行正常,但是,我们希望每次将新修订签入SVN存储库时都运行该管道。管道配置确实具有“ poll
SCM”构建触发选项,但是没有“源代码管理”部分,您可以在其中指定存储库。我们怎样才能做到这一点?


阅读 284

收藏
2020-07-25

共1个答案

一尘不染

我发现有效的解决方案是:

  1. 将管道脚本移到文件(默认为JenkinsFile)中,并将其存储在SubVersion中我项目的根目录中。
  2. 将我的管道作业定义源设置为“来自SCM的管道脚本”,根据常规Jenkins构建作业输入在SubVersion中找到我的项目的详细信息,然后将脚本路径设置为指向包含管道脚本的JenkinsFile。
  3. 将管道作业的生成触发器设置为“轮询SCM”,然后输入时间表。
  4. 手动运行管道作业

似乎是第4步,手动运行管道作业,这使轮询触发器选择了要轮询的正确存储库。在此之前,它似乎不知道在哪里寻找。

2020-07-25