使用已具有“选择参数”的参数调度脚本化管道作业

时间:2018-08-13 17:03:37

标签: jenkins jenkins-plugins jenkins-pipeline cloudbees

我有一个如下的管道脚本

node('web') {
    stage('Test Parameter') {
        container('alpine') {
            properties([pipelineTriggers([
                            cron('H/2 * * * *'),
                            parameterizedCron('H/2 * * * * % data=xml;environment=prod')]
                                        ),
                        ])
            script {
                PARAMS = input id: 'param', message: 'List of Parameters',
                parameters: [
                choice(choices: 'xml\ncsv', description: 'Select a dataset', name: 'data'),
                choice(choices: 'qa\nprod', description: 'Select an environment', name: 'environment')
                ]
                data = "${PARAMS['data']}"
                environment = "${PARAMS['environment']}"
            }
        }
    }
}

现在我想做的是schedule这个pipeline工作,以便它自动运行。所以我做了parameterizedCron('H/2 * * * * % data=xml;environment=prod') ...但是,当作业由timer触发时,它就卡在了input requested上,您可以在脚本中看到choice参数。

我如何让工作自动提供输入?

1 个答案:

答案 0 :(得分:0)

您可以将输入步骤包括在超时块中,这样,如果没有输入,作业将继续使用默认值。 顺便说一句,在选择中,第一个选项将自动被视为默认选项。

Here,您可以找到超时块的示例。