Jenkins重复平行运行阶段,直到另一个阶段完成


stage("Run A and Run B") {
parallel {
stage('A') {
}
stage('B') {
}
}
}

以上设置将并行运行阶段A和B。但我正在寻找一种方法来运行B重复每1分钟,直到阶段a已经完成。有人能建议我如何调整这个吗?

或者,如果有某种方法可以在阶段B中获得阶段A的状态,那就满足了我的需求。

对于任何好奇的人,我的用例是:我在阶段A上运行一些测试,这将花费几个小时,阶段B有一些代码从测试输出中压缩最新的报告并将其推送到远程位置

您可以使用全局变量实现您想要的。
该变量将由第一个并行阶段更新,它将使用该变量来表示它已完成运行,同时该变量将由第二阶段采样以验证是否应该继续执行。
类似于:

def running = true
pipeline {
...
...
stage("Run A and Run B") {
parallel  {
stage('A') {
// Run your stage A code
// When finished update the running parameter
running = false
}
stage('B') {
while (running){
// Run your stage B code as long as stage A is running
sleep 60
}
}
}
}

最新更新