gpt4 book ai didi

jenkins-pipeline - 在声明性 Jenkinsfile 之前运行脚本以使用扩展选择参数插件

转载 作者:行者123 更新时间:2023-12-04 07:23:20 29 4
gpt4 key购买 nike

我正在尝试运行一个脚本来实例化扩展选择参数变量以在声明性 jenkinsfile 属性部分中使用它,但是我无法在没有步骤的情况下在 jenkinsfile 中运行脚本。我不想将其作为输入步骤或脚本管道来执行。

所以我运行它首先是一个节点步骤,然后是一个管道步骤,如下所示:

import com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition

node('MyServer') {

try {
def multiSelect = new ExtendedChoiceParameterDefinition(...)

properties([ parameters([ multiSelect ]) ])
}
catch(error){
echo "$error"
}
}

pipeline {

stages {
....
}
}

它神奇地起作用了!需要注意的是,仅当我之前仅使用管道块运行过构建时。

那么,有没有更好的方法来运行以前的脚本到管道?能够为属性或步骤之外的其他地方创建对象以嵌入脚本块?

最佳答案

我宁愿去parameters block in pipeline .

The parameters directive provides a list of parameters which a user should provide when triggering the Pipeline. The values for these user-specified parameters are made available to Pipeline steps via the params object, see the Example for its specific usage.


pipeline {
agent any
parameters {
string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')

text(name: 'BIOGRAPHY', defaultValue: '', description: 'Enter some information about the person')

booleanParam(name: 'TOGGLE', defaultValue: true, description: 'Toggle this value')

choice(name: 'CHOICE', choices: ['One', 'Two', 'Three'], description: 'Pick something')

password(name: 'PASSWORD', defaultValue: 'SECRET', description: 'Enter a password')

file(name: "FILE", description: "Choose a file to upload")
}
stages {
stage('Example') {
steps {
echo "Hello ${params.PERSON}"

echo "Biography: ${params.BIOGRAPHY}"
echo "Toggle: ${params.TOGGLE}"

echo "Choice: ${params.CHOICE}"

echo "Password: ${params.PASSWORD}"
}
}
}
}

关于jenkins-pipeline - 在声明性 Jenkinsfile 之前运行脚本以使用扩展选择参数插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54028173/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com