在declarative pipeline中,我可以在管道脚本中指定管道期望的参数,如下所示:
pipeline {
parameters([
string(name: 'DEPLOY_ENV', defaultValue: 'TESTING' )
])
}
有可能在脚本化的代码行中执行吗?我知道我可以做到:
但是,可以这样做:
node{
parameters([
string(name: 'DEPLOY_ENV', defaultValue: 'TESTING' )
])
}
答案 0 :(得分:3)
我通过实验找到了一种解决方案,因此想分享它:
node {
properties(
[
parameters(
[string(defaultValue: '/data', name: 'Directory'),
, string(defaultValue: 'Dev', name: 'DEPLOY_ENV')]
)
]
)
....
}
答案 1 :(得分:0)
我强烈建议您首次使用“代码段生成器”来解决此问题。它将允许您使用看起来与上面共享的快照完全一样的GUI,填写所需的设置,并生成适当的语法。对于特定的问题,请从代码片段生成器中选择示例步骤“属性:设置作业属性”
您可以通过转到/pipeline-syntax
端点从任何Jenkins服务器访问“代码段生成器”。
有关代码片段生成器的更多信息,请参见:https://jenkins.io/doc/book/pipeline/getting-started/#snippet-generator
答案 2 :(得分:0)
您可以使用Jenkins Job DSL插件来生成作业,管道,多分支管道... DSL允许定义作业,然后提供了一组有用的功能来配置常见的Jenkins项目。在生成作业之前,可以使用configure来直接访问config.xml。使用参数块,您可以轻松地定义任何类型的参数及其默认值和说明。请注意,此插件还与git和其他版本控制系统兼容。
jobDsl scriptText: ''' job('example') {
parameters {
stringParam('Parameter Name', 'Default Value' , 'Parameter Description')
}
scm {
perforceP4('p4_credentials') {
workspace {
manual('ws_name', '//depot/Tools/build/... //ws_name/build/...')
}
configure { node ->
node / workspace / spec / clobber('true')
}
}
}
}'''
参考文献:
https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob-scm-perforceP4
答案 3 :(得分:0)
我确实在外面创建了它,并且有效!另外,我使用的是布尔值,并且在scripted
版本中,它的工作方式就像是一种魅力
// Parameters for the build
properties([
parameters([
booleanParam(name: 'DEPLOY_SHA', defaultValue: false),
])
])
podTemplate(name: ptNameVersion, label: ptNameVersion, containers: [
...
...
]
它显示参数