我有多个带有“ build_run”标签的节点(例如,node1,node2,node3)。因此,当我运行此管道时,无法确定“构建”和“运行”作业是否已在同一节点上运行。 “构建”可发生在“ node1”中,“运行”可发生在“ node3”中。我希望构建和运行都在同一节点上进行。但是我不想用相同的方式硬编码。 我想知道哪个节点已被“构建”拾取。这样我就可以将它作为节点参数传递给Run。 我该如何解决?
stage('Build, run) {
for(int i=0; i<4; ++i){
def builds = {
stage('Build') {
build job: 'Build', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: 'build_run']]
}
stage('Run') {
build job: 'Run', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: 'build_run']]
}
}
}
}
parallel builds
答案 0 :(得分:0)
我使用了下面的方法,它对我有用。 (使用rawBuild.getEnvironment()['NODE_NAME']获取在其中运行作业的节点。)
def node_to_use = ""
stage('Build, run) {
for(int i=0; i<4; ++i){
def builds = {
stage('Build') {
def build_var = build job: 'Build', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: 'build_run']]
node_to_use = build_var.rawBuild.getEnvironment()['NODE_NAME']
}
stage('Run') {
build job: 'Run', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: node_to_use]]
}
}
}
}
parallel builds