我有一个执行Job A和Job B的Jenkins管道。我有10个执行Job A的代理程序/节点。 如果我指定Agent1,则在构建管道时,作业A应该在Agent1上执行。
问题: 管道正在Agent1上运行,JobA正在任何随机可用的代理上获取。
脚本:
pipeline {
agent none
stages {
stage('JOB A') {
agent { label "${machine}" }
steps {
build job: 'JOB A', parameters: [a,b,c,d,e,f]
}
}
stage('JOB B') {
agent { label 'xyz' }
steps {
build job: 'JOB B', parameters: [a,b,c,d,e,f,]
}
}
}
}
我为每个座席使用不同的标签。
有人可以帮助我了解管道作业和下游作业的运行方式和位置吗?
谢谢!
答案 0 :(得分:0)
正如@yong正确指出的那样,我“为阶段指定了代理商标签,而不是为工作A指定了标签。”
因此,我在作业A中声明了一个标签参数,并通过管道将其传递给下游。现在,它可以在指定的代理上正确执行。
pipeline {
agent { label 'master' }
stages {
stage('JOB A') {
steps {
build job: 'JOB A', parameters: [a, [$class: 'LabelParameterValue', name: 'Agent', label: "${Agent}" ], b, c, d]
}
}
stage('JOB B') {
steps {
build job: 'JOB B', parameters: [x,y,z]
}
}
}
}