我们正在尝试为我们的一个客户创建 CI/CD。我们需要为 svn 中的所有项目创建一个 CI/CD 管道。
Poll Svn 作业将每隔一小时在 SVN 上轮询一次修订更改。由于我们有一个健壮的文件夹结构,使用 python 脚本或 groovy 脚本我们能够获得自上次投票以来发生变化的项目数量。
能否请您告诉我们是否可以为每个已更改的项目动态触发管道中的其余作业。
eg: trunk --->CICD --> PROJECT1
--> PROJECT2
--> PROJECT3
--> PROJECT4
如果项目 2 和项目 4 发生变化,则应为项目 2 和项目 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了解原因的指南。
希望这对您有所帮助。
关于python - 根据文件夹更改的数量触发多个 Jenkins 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134044/