如何使Jenkins构建参数具有粘性? (保留下一次运行的最后选择)

时间:2018-07-10 22:01:39

标签: jenkins-pipeline

问题

我们希望某些作业从默认值开始并修改作业。例如,部署到测试环境中应默认为最后设置。目前,我们可以在运行之前配置作业。可以,但是很麻烦。

1 个答案:

答案 0 :(得分:0)

您可以在属性中手动或以编程方式定义道具。如果我们以编程方式执行此操作,则一旦选择它们就可以对其进行更新。第一个调用设置构建的属性,第二个调用将其更改为用户选择。从理论上讲,如果您手动设置这些参数,则只需要第二次调用

    def stickyprops(def sticky = "initial value") {
            def propertiesAllBranches = [
                disableConcurrentBuilds(),
                [$class: 'ParametersDefinitionProperty', parameterDefinitions: [
                        [$class: 'StringParameterDefinition', defaultValue: sticky, description: '', name: 'STICKY_PARAM']]
                ]
            ]
            properties(propertiesAllBranches)
    }

    node() {
            // set to default
            stickyprops()

            // Report current user choice
            currentBuild.description = "param ${params.STICKY_PARAM}"

            // Set params to user choice
            stickyprops(params.STICKY_PARAM)
    }