之前使用过Jenkins的Active Choices Plugin插件,概述下当时我想实现的效果

  • 针对自定义选项支持多选
  • 在Job中点击构建是默认全部选中
  • 采用DSL构建 所以当时调研后就选择了这个插件,使用起来还不错。不过今天又遇到一个问题,记录一下

实现效果如下

1

Jenkins上Test_Choices1的配置如下

2

Test_choices2跟1的区别在于点击进去默认是全选的,关于选中状态,主要区别是:selected,具体可以参照上面插件的wiki链接。 wiki2就写一个Groovy的写法不截图了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
activeChoiceParam('Test_choices2') {
    description('描述')
    //filterable()
    choiceType('MULTI_SELECT')
    groovyScript {
        script('''\
        return [
                'C1',
                'C2',
                'C3',
                'C4',
                'C5'
               ].collect { "$it:selected" }
            '''.stripIndent())
        //fallbackScript('"fallback choice"')
    }
}

这样需求就解决了,最近发现的问题是如果使用cron触发任务,默认选择的就不生效了。目前是个ISSUE,具体信息可以追踪 JENKINS-42568 有好的解决方案再来这更新,不赘述了