如何从另一个中止一个并行作业?我必须在Jenkins管道中执行并行运行的任务。任务1完成后,任务2也应该完成。这可能吗?
pipeline {
agent none
stages {
stage('Stage A') {
agent {
label "winvm01"
}
steps {
script {
stage('Stage 1') {
def branches = [:]
branches["branch_1"] = {
// do some lengthy work
echo "branch 1 ended"
// abort branch 2 here!!??
}
branches["branch_2"] = {
// to something that only should run while branch_1 is running
}
parallel branches
}
}
}
}
}
}
答案 0 :(得分:0)
这样的事情会起作用:
stop = false
parallel 'long': {
sleep 20
println "finished long process"
stop = true
}, 'short': {
while ( !stop ) {
println "work"
sleep 1
}
println "stopped by other branch"
}
您还可以让分支1在进程结束时创建一个文件,分支2将检查该文件。
在分支1失败并且永远不会满足停止条件的情况下,为分支2添加超时可能是个好主意。
编辑:忘记failFast: true
标志,这是确保其他分支在第一个失败时停止的更好方法。