在jenkins DSL插件中执行多行命令
使用Jenkins 2 希望从git存储库生成动态选择。因此,在GroovySrcit的脚本部分中在jenkins DSL插件中执行多行命令,jenkins,plugins,dsl,Jenkins,Plugins,Dsl,使用Jenkins 2 希望从git存储库生成动态选择。因此,在GroovySrcit的脚本部分中 job('example') { parameters { activeChoiceParam('CHOICE-1') { description('Allows user choose from multiple choices') filterable() choiceType('SINGLE_SELECT') groovyScript { // script('["c
job('example') {
parameters {
activeChoiceParam('CHOICE-1') {
description('Allows user choose from multiple choices')
filterable()
choiceType('SINGLE_SELECT')
groovyScript {
// script('["choice1", "choice2"]')
script('-DYNANIC CHOICES-REF-PESUDO-CODE')
fallbackScript('"fallback choice"')
}
}
}}
伪代码
groovyScript {
script('
// call git repo and fetch some branches info.
// collect them in some local variable and return them as choices
def branches = "git branch -l"
return branches
')
fallbackScript('"fallback choice"')
}
在我的例子中,它总是使用回退脚本。
请共享您的输入。在作业真正开始之前会显示Jenkins作业或管道输入。
我也面临同样的要求,最后完成了一项更新自身参数设置并要求重新运行的工作 即:
- 检查作业设置是否正常
- 如果不正常,则创建并用“取消”更新作业状态,并向用户提供消息或说明
- 作业正常,这意味着用户在此阶段已经提供了参数
EXPECTED_VERSION = "v1.1"
// check setup : read variable "SETUP_VERSION" and compare with constant in code
if ( "${SETUP_VERSION}" != "${EXPECTED_VERSION}" ) {
// if different, run setup and stop build
createSetup()
echo "Setup updated, please restar"
currentBuild.result = 'ABORTED'
}
// else continue processing
...
// create setup
void createSetup() {
def myParameters = [choice(
choices: "${EXPECTED_VERSION}"
, description: 'JenkinsFile version for internal testing only'
, name: 'SETUP_VERSION'
)]
// stuff
myParameters << string(
defaultValue: ''
, description: 'some input'
, name: 'MY_INPUT')
}
预期版本=“v1.1”
//检查设置:读取变量“setup\u VERSION”,并与代码中的常量进行比较
如果(“${SETUP\u VERSION}”!=“${EXPECTED\u VERSION}”){
//如果不同,请运行安装程序并停止生成
createSetup()
echo“安装程序已更新,请重新启动”
currentBuild.result='已中止'
}
//否则继续处理
...
//创建设置
void createSetup(){
def myParameters=[choice](
选项:“${EXPECTED_VERSION}”
,说明:'Jenkins文件版本仅用于内部测试'
,名称:'安装程序\u版本'
)]
//东西
myParametersJenkins作业或管道输入在作业真正开始之前显示。
我也面临同样的要求,最后完成了一项更新自身参数设置并要求重新运行的工作
即:
- 检查作业设置是否正常
- 如果不正常,则创建并用“取消”更新作业状态,并向用户提供消息或说明
- 作业正常,这意味着用户在此阶段已经提供了参数
编辑
示例代码:
EXPECTED_VERSION = "v1.1"
// check setup : read variable "SETUP_VERSION" and compare with constant in code
if ( "${SETUP_VERSION}" != "${EXPECTED_VERSION}" ) {
// if different, run setup and stop build
createSetup()
echo "Setup updated, please restar"
currentBuild.result = 'ABORTED'
}
// else continue processing
...
// create setup
void createSetup() {
def myParameters = [choice(
choices: "${EXPECTED_VERSION}"
, description: 'JenkinsFile version for internal testing only'
, name: 'SETUP_VERSION'
)]
// stuff
myParameters << string(
defaultValue: ''
, description: 'some input'
, name: 'MY_INPUT')
}
预期版本=“v1.1”
//检查设置:读取变量“setup\u VERSION”,并与代码中的常量进行比较
如果(“${SETUP\u VERSION}”!=“${EXPECTED\u VERSION}”){
//如果不同,请运行安装程序并停止生成
createSetup()
echo“安装程序已更新,请重新启动”
currentBuild.result='已中止'
}
//否则继续处理
...
//创建设置
void createSetup(){
def myParameters=[choice](
选项:“${EXPECTED_VERSION}”
,说明:'Jenkins文件版本仅用于内部测试'
,名称:'安装程序\u版本'
)]
//东西
myParameters Thanks Grunnpi供您在帖子上发表评论。答案仍在我的版块上。请您用一些代码片段或参考文档进行解释好吗?用最少的代码更新了答案。您应该调整“刷新设置”条件,以便将当前设置与预期设置进行比较(我取决于版本号)Thanks Grunnpi感谢您对这篇文章的评论。答案仍在我的讨论板上。您能用一些代码片段或参考文档进行解释吗?用最少的代码更新了答案。您应该调整“刷新设置”条件,以便将当前设置与预期设置进行比较(我取决于版本号)