我正在尝试解决与该问题类似的问题:How to trigger a jenkins build on specific node using pipeline plugin?
在我的情况下,唯一的区别是我触发的作业是另一个脚本化管道作业。因此,建议的解决方案中的第二步不适用于我的情况:
我的问题是如何定义:
org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition
脚本化管道参数化作业中的参数(不是通过GUI)。
我尝试过的事情:
properties([[$class : 'RebuildSettings',
autoRebuild : false,
rebuildDisabled: false],
parameters([org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition(name: 'node')])])
答案 0 :(得分:1)
生成参数化脚本化管道所需代码的最简单方法是:
这给您:
service.insert(...)
但是对于我来说,这甚至是没有必要的。您需要做的是一个带有自定义名称的常规字符串参数,让我们说“节点”,然后执行以下操作:
legalPerson.setId(null);
答案 1 :(得分:0)
如果您的用例是要在特定的代理节点上执行通用管道,则可以使用“ Agent-Server-parameter”插件,通过该插件可以从下拉列表中添加agent-name参数作为您选择的代理,进入参数化管道(或称为“主”管道),并可以在管道脚本下使用代理名称参数(例如,在主参数化管道内调用sample.groovy)。 对于在管道中(没有GUI)定义的另一个参数(可能是字符串,布尔值,选择)。 请参见下面的示例示例,该示例是我从Master职位调用的。
#!groovy
/* This Groovy implementation is pipeline for a Sample project */
pipeline {
agent { label params['agent-name'] } //agent can be configured for stage as well.
options {
timeout(time: 1, unit: 'HOURS', activity: true) // abort if nothing happens
timestamps() // prepend timestamps on the console output
}//option
parameters {
booleanParam(
name: 'BOO_PARAM1', defaultValue: false,
description: 'Enable Parameter 1')
booleanParam(
name: 'BOO_PARAM2', defaultValue: false,
description: 'Enable Parameter 2')
stringParam('MY_PATH', 'C:\SampleProject')
choiceParam('RUN_JOBON_NODE', ['YES', 'NO'])
}//parameters
environment {
/* Environment Variable definition and its use */
BOO_PARAM1 = "${params.BOO_PARAM1}"
}//environment
stages {
/* agent is single for complete pipeline but can be changed for stage */
stage('Hello') {
when {
expression { return params.BOO_PARAM1}
}
print"Hello Stage on %agent-name%"
} // Stage
}//stages
}//pipeline
注意:构建后阶段不包括在内。 “ agent-server-parameter”插件使您可以利用通用管道(通用阶段)在不同节点上执行。