【问题标题】:Triggering multiple jenkins jobs based on the no of folder changes根据文件夹更改的数量触发多个 jenkins 作业
【发布时间】:2017-02-09 10:23:38
【问题描述】:

我们正在尝试为我们的一位客户创建 CI/CD。我们需要为 svn 中的所有项目创建一个 CI/CD 管道。

Poll Svn 作业将每隔一小时在 SVN 上轮询一次修订更改。由于我们有一个健壮的文件夹结构,使用 python 脚本或 groovy 脚本,我们能够获得自上次轮询以来发生更改的项目数量。

能否请您告诉我们是否可以为每个更改的项目动态解雇管道中的其余作业。

eg: trunk --->CICD --> PROJECT1  
                   --> PROJECT2
                   --> PROJECT3
                   --> PROJECT4

如果项目 2 和项目 4 发生变化,则应为项目 2 和项目 4 触发其余的管道作业。任何建议表示赞赏

【问题讨论】:

    标签: python jenkins parameter-passing jenkins-plugins jenkins-pipeline


    【解决方案1】:

    我认为使用普通的老式 groovy 可以很容易地实现您的要求(如果我没听错的话):

    // I'm assuming here you somehow obtained a list of your projects...
    def projects = ['project2', 'project4']
    
    for (i = 0; i < projects.size(); i++) {
        build job: 'some-job-with-params', parameters: [string(name: 'myProject', value: 'project')]
    }
    

    在此示例中,我将“项目”名称传递给接受此参数并对其进行处理的作业,但它可以是您能想到的任何东西。

    请注意,我在这里使用的是传统的 for 循环,请查看 these 指南以了解原因。

    我希望这会对您有所帮助。

    【讨论】:

    • 是否还能保证上下游的管道完好无损??
    • 不确定你的意思。你能详细说明一下吗?
    【解决方案2】:

    我们通过使用参数化构建触发器和使用参数工厂“每个属性文件调用一个构建”选项来实现相同的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2022-06-13
      • 2019-04-13
      相关资源
      最近更新 更多