是否可以通过在实际脚本中而不是作业配置中列出参数来在Jenkins中创建参数化脚本管道

Gre*_*icz 9 jenkins jenkins-pipeline

声明性管道中,我可以在管道脚本中指定管道期望的参数,如下所示:

pipeline {
   parameters([
    string(name: 'DEPLOY_ENV', defaultValue: 'TESTING' )
   ])
}
Run Code Online (Sandbox Code Playgroud)

有可能在脚本化的管线中做?我知道我可以这样做:

在此处输入图片说明

但是,可以执行以下操作:

node{
   parameters([
    string(name: 'DEPLOY_ENV', defaultValue: 'TESTING' )
   ])
}
Run Code Online (Sandbox Code Playgroud)

Gre*_*icz 15

我通过实验找到了一种解决方案,所以想分享一下:

node {
  properties(
    [
        parameters(
            [string(defaultValue: '/data', name: 'Directory'),
             string(defaultValue: 'Dev', name: 'DEPLOY_ENV')]
            )

    ]
    )    

  ....
}
Run Code Online (Sandbox Code Playgroud)

  • 另外,`properties(...)`部分不必成为节点{...}声明的一部分 (3认同)

Jef*_*eff 6

我强烈建议第一次使用“代码段生成器”来解决这个问题。它将允许您使用看起来可能与您上面共享的快照完全相同的 GUI,来填写您想要的设置,并生成适当的语法。对于这个问题,特别是从代码段生成器中选择示例步骤“属性:设置作业属性”

您可以通过访问/pipeline-syntax端点从任何 Jenkins 服务器访问“代码段生成器” 。

有关代码段生成器的更多信息,请参阅:https : //jenkins.io/doc/book/pipeline/getting-started/#snippet-generator