我试图将我的自由式作业转换为声明性管道作业,因为管道提供了更大的灵活性。但是,我无法弄清楚如何在管道中使用NodeLabel参数插件(https://wiki.jenkins.io/display/JENKINS/NodeLabel+Parameter+Plugin)。
pipeline {
agent any
parameters {
// Would like something like LabelParameter here
}
stages {
stage('Dummy1') {
steps {
cleanWs()
sh('ls')
sh('pwd')
sh('hostname')
}
}
stage('Dummy2') {
steps {
node("comms-test02") {
sh('ls')
sh('pwd')
sh('hostname')
}
}
}
}
我基本上只需要一种使用指定开始在哪里构建作业的参数(使用从属标签)来启动作业的方法。
Jenkins要求提供一个我设置为“ any”的代理字段。但是似乎没有可用的labelparameter吗?
作为替代方案,我尝试使用“节点”命令(https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#-node-分配节点)。但是,这给我留下了两个正在运行的作业,这些作业在工作时看上去并不那么漂亮。
是否可以使用NodeLabel参数插件?也许有人有一个更清洁的方法?
编辑:也许我不清楚。我需要能够在不同的节点上运行作业。通过参数触发作业时应确定要运行的节点。节点标签插件可以完美地做到这一点。但是,我无法在管道中重现此行为。
假设您slaveName
在管道上使用NodeLabel插件添加了参数(称为)。现在,您需要提取的值slaveName
并将其输入到agent-> node-> label字段中。
您可以使用代理内的node属性指定节点。像这样 -
agent
{
node
{
label "${slaveName}"
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句