本文介绍了Jenkinsfile 主动选择参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在多分支管道 jenkinsfile(declerative) 中使用这个 dsl 脚本?

How can i use this dsl script in Multibranch Pipeline jenkinsfile(declerative)?

parameters {
        activeChoiceParam('States') {
            description('Select a state option')
            filterable()
            choiceType('SINGLE_SELECT')
            groovyScript {
                script('["Sao Paulo", "Rio de Janeiro", "Parana:selected", "Acre"]')
                fallbackScript('return ["ERROR"]')
            }
        }
        activeChoiceReactiveParam('Cities') {
            description('Active Choices Reactive parameter')
            filterable()
            choiceType('CHECKBOX')
            groovyScript {
                script('''
if (States.equals('Sao Paulo')) {
    return ['Barretos', 'Sao Paulo', 'Itu'];
} else if (States.equals('Rio de Janeiro')) {
    return ['Rio de Janeiro', 'Mangaratiba']
} else if (States.equals('Parana')) {
    return ['Curitiba', 'Ponta Grossa']
} else if (States.equals('Acre')) {
    return ['Rio Branco', 'Acrelandia']
} else {
    return ['Unknown state']
}
                       ''')
                fallbackScript('return ["Script error!"]')
            }
            referencedParameter('States')
        }
    }

当我在 jenkinsfile 中使用这个脚本时,我得到了这个错误:

When i use this script in jenkinsfile i get this error:

WorkflowScript:23:构建参数定义不能在第 23 行第 5 列包含块.activeChoiceParam('States') {^

WorkflowScript: 23: Build parameters definitions cannot have blocks @ line 23, column 5. activeChoiceParam('States') { ^

WorkflowScript:32:构建参数定义不能在第 32 行第 9 列包含块.activeChoiceReactiveParam('Cities') {^

WorkflowScript: 32: Build parameters definitions cannot have blocks @ line 32, column 9. activeChoiceReactiveParam('Cities') { ^

2 个错误

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:131)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:125)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:560)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:521)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:325)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)

已完成:失败

推荐答案

在 Jenkins Domain-Specific-Language (DSL) 期间在声明性 Jenkinsfiles 中使用 Active Choices Plugin 时会出现此错误.不支持 如开发人员所述.

This error occurs when using the Active Choices Plugin in declarative Jenkinsfiles during Jenkins Domain-Specific-Language (DSL). This is not supported as stated by the developers.

这整套插件改变了所有权并让过时的 wiki 页面充满了垃圾邮件,这会导致在包括谢谢"/ping"垃圾评论部分在内的几十个地方搜索相关信息时浪费大量时间的危险.

This whole arrangement of plugins changeing ownership and leaving horribly outdated wiki pages full of spam leads to the danger of an immense waste of time while searching relevant information at dozens of places including "thank you"/"ping"-spammed comment sections.

这篇关于Jenkinsfile 主动选择参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!