根据文件夹更改的数量触发多个jenkins作业

时间:2017-02-09 10:23:38

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:4)

我认为你需要的东西可以很容易地用普通的老式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指南以了解原因。

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

答案 1 :(得分:1)

我们通过使用参数化构建触发器并使用参数工厂&#34;每个属性文件调用一个构建&#34;来实现相同的目标。选项。