I have the following advanced scripted pipeline in a 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'
}
}
}
Note the top node that precedes the parallel windows/macos/ios nodes. Does this mean that checkout scm will be invoked on every subsequent building node (windows/apple), before proceeding to the parallel steps? In other words, does the script above guarantee that the repository will be checked out on every node that will be involved at any stage of this build?