我正在由中央Jenkins主服务器运行Jenkins声明式管道控件,并在两个不同站点(siteA和siteB)的2个从属服务器上运行。
我有一个阶段需要在两个站点上运行(最好是并行运行以节省时间),该阶段要等到加载了一些资源。因此,此阶段基本上运行一个脚本,该脚本检查是否加载了资源,如果没有加载,则等待X秒,然后重试直到所有资源都加载。
发生的事情是,在一个站点上,资源加载比在另一个站点上更快,因此,尽管另一个站点尚未完成,但当一个站点完成整个阶段时就可以完成。
此阶段的管道如下所示:
stage('myStage') {
parallel {
stage('myStage-siteA') {
agent {
node {
label 'siteA'
}
}
steps {
waitForResourcesLoaded(siteA)
}
}
stage('myStage-siteB') {
agent {
node {
label 'siteB'
}
}
steps {
waitForResourcesLoaded(siteB)
}
}
}
}
是否有任何方法可以“同步”每个并行阶段,以便仅在每个子阶段完成后才将整个阶段“ myStage”标记为已完成?