基于参数值选择的Jenkins管道代理标签的使用

omqzjyyz  于 2023-01-25  发布在  Jenkins
关注(0)|答案(2)|浏览(138)

我有这个管道示例(其中的一部分):

pipeline {
    parameters {
        choice(name: 'myParam', choices: ['1','2'], description: 'param desc')
    }
    options { timestamps () }
    agent {
        node {
            label 'myLabel'
        }
    }

我的问题是:
我想根据用户对myParam的选择更改我的代理标签的myLabel。在这种情况下,我希望当myParam为1时,myLabel将等于“linux_first”,当myParam为2时,myLabel将为“linux_second”。
有人知道怎么做吗?先谢了,阿隆

rbpvctlc

rbpvctlc1#

您可以在声明性管道中以这种方式参数化代理

properties([
   string(description: 'build Agent', name: 'build_agent')
])

pipeline {
   agent {
      label params['build_agent']
   }
   stages {
      // steps 
   }
}
suzh9iv8

suzh9iv82#

方法1-
您可以尝试“nodeLabelParameter”插件。它可能会帮助您的基础上您的要求。
https://plugins.jenkins.io/nodelabelparameter/
这个插件在作业配置中增加了两个新的参数类型--节点和标签。新的参数允许动态选择作业应该执行的节点或标签。
方法2-
此外,基本语法将为管道定义参数并使用它。

agent {
label "${build_agent}"
}

相关问题