根据文件夹更改的数量触发多个詹金斯作业
Triggering multiple jenkins jobs based on the no of folder changes
我们正在尝试为我们的一位客户创建 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')]
}
在此示例中,我将 "project" 名称传递给接受此参数并对其执行某些操作的作业,但它可以是您能想到的任何内容。
注意我在这里使用传统的 for 循环,查看 these 指南以了解原因。
希望对您有所帮助。
我们通过使用参数化构建触发器和使用参数工厂 "Invoke one build per property file" 选项实现了同样的效果。
我们正在尝试为我们的一位客户创建 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')]
}
在此示例中,我将 "project" 名称传递给接受此参数并对其执行某些操作的作业,但它可以是您能想到的任何内容。
注意我在这里使用传统的 for 循环,查看 these 指南以了解原因。
希望对您有所帮助。
我们通过使用参数化构建触发器和使用参数工厂 "Invoke one build per property file" 选项实现了同样的效果。