在Jenkins Pipeline中的所有构建作业上使用相同的节点/示例

rm5edbpk  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(267)

管道{代理{标签“linux”}

stages{
    stage("verify1"){
        steps {
            script {
                build(job: "verfiy1", parameters: [string(name: 'verfiy1', value: "${params.verfiy1}")])
            }
        }
    }

    stage("verify2"){
        steps {
            script {
                build(job: "verfiy2", parameters: [string(name: 'verfiy2', value: "${params.verfiy2}")])
            }
        }
    }

    stage("verify3"){
        steps {
            script {
                build(job: "verify3", parameters: [string(name: 'verify3', value: "${params.verify3}")])
            }
        }
    }
}

}

你好
有人能帮助我吗,现在我可以从上面的管道成功地构建3个作业,但问题是每个作业都在新的ec2从示例上执行,而不是在作业已经开始的示例上执行。我期待着输出,因为一旦上面的管道开始,管道中的所有构建都必须在同一个节点(ec2示例)上执行。
先谢谢你

41ik7eoe

41ik7eoe1#

您可以将上游作业的代理节点传递给下游作业。
1.再添加一个作业参数以接受节点
1.调用build job步骤时,通过env.NODE_NAME传递上游作业的代理节点

// verify 1 job

pipeline {
   agent { label "${params.agentNode}" }
   parameters {
      string(name: "agentNode", 
             defaultValue="<give default value in case run it directly>" )
   }
}

// upstream job

build(job: "verify1", parameters: [
    string(name: 'agentNode', value: "${env.NODE_NAME}"),
    string(name: 'verify3', value: "${params.verify3}")
])

相关问题