【发布时间】:2018-10-04 01:36:45
【问题描述】:
我在 Jenkinsfile 中有以下高级脚本化管道:
stage('Generate') {
node {
checkout scm
}
parallel windows: {
node('windows') {
sh 'cmake . -Bbuild.windows -A x64'
}
},
macos: {
node('apple') {
sh '/usr/local/bin/cmake . -DPLATFORM="macos" -Bbuild.macos -GXcode'
}
},
ios: {
node('apple') {
sh '/usr/local/bin/cmake . -DPLATFORM="ios" -Bbuild.ios -GXcode'
}
}
}
注意并行 windows/macos/ios 节点之前的顶部 node。这是否意味着checkout scm 将在每个后续的构建节点(windows/apple)上被调用,然后再进行并行步骤?换句话说,上面的脚本是否保证将在此构建的任何阶段涉及的每个节点上签出存储库?
非常感谢。
【问题讨论】:
-
你为什么不试试呢?
-
构建不会持续失败,它会间歇性地失败。
-
当然,它适用于已签出源的代理。如果该代理具有标签“apple”并且在此构建或以后的构建中重新使用(因为您没有清理工作区),那么代码仍然位于磁盘上。