在几种情况下跳过管道执行
Skip pipeline execution on several condition
我调用了一个管道构建,例如 UAT
。此构建每 3 分钟安排一次。另一个名为 DEV
的构建。 DEV
每分钟安排一次。任务是:仅当最后一次 DEV
执行是 SUCCESS
时才 运行 UAT
。如果不是 - 跳过执行。 运行 其他 3 分钟后,情况相同。
我怎样才能做到这一点?
不要将您的 UAT
作业安排为单独的作业,而是在您的第一个 DEV
管道成功完成后触发启动。
当您使用管道时,您实际上有 2 个解决方案:
1)
不要调用另一个作业,只调用一个 Groovy 函数来集成 DEV
部分,例如:
node() {
stage "UAT"
// Your existing UAT pipeline content here
stage "DEV"
git 'http://urlToYourGit/projectContainingYourDevScript'
pipeline = load 'functions.groovy'
pipeline.dev()
}
2) 只需使用这种行调用第二个 Jenkins 作业:
node() {
stage "UAT"
// Your existing UAT pipeline content here
build job: "dev-job"
}
使用这 2 个解决方案,您可以将第一个作业配置为每分钟 运行,只有当第一个作业成功完成时,它才会触发第二个 part/job(否则 Jenkins 将无法构建像往常一样)。
我调用了一个管道构建,例如 UAT
。此构建每 3 分钟安排一次。另一个名为 DEV
的构建。 DEV
每分钟安排一次。任务是:仅当最后一次 DEV
执行是 SUCCESS
时才 运行 UAT
。如果不是 - 跳过执行。 运行 其他 3 分钟后,情况相同。
我怎样才能做到这一点?
不要将您的 UAT
作业安排为单独的作业,而是在您的第一个 DEV
管道成功完成后触发启动。
当您使用管道时,您实际上有 2 个解决方案:
1)
不要调用另一个作业,只调用一个 Groovy 函数来集成 DEV
部分,例如:
node() {
stage "UAT"
// Your existing UAT pipeline content here
stage "DEV"
git 'http://urlToYourGit/projectContainingYourDevScript'
pipeline = load 'functions.groovy'
pipeline.dev()
}
2) 只需使用这种行调用第二个 Jenkins 作业:
node() {
stage "UAT"
// Your existing UAT pipeline content here
build job: "dev-job"
}
使用这 2 个解决方案,您可以将第一个作业配置为每分钟 运行,只有当第一个作业成功完成时,它才会触发第二个 part/job(否则 Jenkins 将无法构建像往常一样)。