groovy 如何在Jenkins参数中引用常量

68de4m5k  于 2023-01-20  发布在  Jenkins
关注(0)|答案(1)|浏览(164)

我在Pipelinconstant.groovy文件中有以下代码
公共静态最终列表动作选择= [不适用、完整蓝色绿色、阶段、翻转、清除]
和Jenkins多振打器文件中的此参数

parameters {
    string (name: 'ChangeTicket', defaultValue: '000000', description : 'Prod change ticket otherwise 000000')
    choice (name: 'AssetAreaName', choices: ['fpukviewwholeof', 'fpukdocrhs', 'fpuklegstatus', 'fpukbooksandjournals', 'fpukleglinks', 'fpukcasesoverview'], description: 'Select the AssetAreaName.')
    /* groovylint-disable-next-line DuplicateStringLiteral */
    choice (name: 'AssetGroup', choices: ['pdc1c', 'pdc2c'])

我希望在参数中引用ACTION CHOICES,如下所示
选项(名称:“操作”,选项:常量。ACTION_CHOICES,说明:“多版本部署操作”)}
但对我没用。
我试过这么做
选项(名称:“操作”,选项:常量。ACTION_CHOICES,说明:“多版本部署操作”)}
但对我没用。

igetnqfo

igetnqfo1#

Jenkinsfile(s)可以用定义的变量/常量来扩展(直接在文件中定义,或者(更好的说法是)从Jenkins shared library(这个场景)中定义)。
管道中的参数语法和常量列表的思想都很好,但缺少什么:这些部分的正确链接-正确的库导入。参见下面的示例 (示例中下面的名称不是刻在石头上的,当然可以更改,但要注意- Jenkins对文件名、路径等非常敏感(尤其是在共享库中))
Pipelineconstant.groovy应放置在Jenkins共享库的src/org/pipelines中。
Pipelineconstant.groovy

package org.pipelines

class Pipelineconstant {
   public static final List<String> ACTION_CHOICES = ["N_A", "FULL_BLUE_GREEN", "STAGE", "FLIP", "CLEANUP"]
}

然后你可以在Jenkinsfile管道中引用这个常量列表。
Jenkinsfile

@Library('jsl-constants') _
import org.pipelines.Pipelineconstant

 pipeline {
    agent any   

    parameters {
        choice (name: 'Action', choices: Pipelineconstant.ACTION_CHOICES , description: 'Multi Version deployment actions')
    }

    // rest of your pipeline code

}

管道的前两行很重要-第一行加载JSL本身!因此可以使用该导入的第二行(否则Jenkins将不知道在哪里找到Pipelineconstant.groovy文件。

相关问题