我正在尝试在Jenkins(2.19.4)中获得参数化管道作业以使用以下规范:
BRANCH_TO_BUILD
Git参数,用于从gitlab存储库中检索所有可用分支,供用户选择一个我得到的错误与Git参数有关:
net.uaznia.lukanus.hudson.plugins.gitparameter.jobs.WorkflowJobWrapper getSCMFromDefinition
SEVERE: Get repo scm from Workflow job fail
java.lang.NoSuchMethodException: org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition.getScm()
据我所知,在请求参数输入之前,Jenkins无法从管道脚本中检索SCM配置。
我知道有一个新的功能请求JENKINS-39530但是有不同的方法来实现这一目标吗?
答案 0 :(得分:1)
根据我的理解,你想要一个用户选择分支的工作。分支应与GitLab中的分支保持同步。
一种方法是使用Job DSL plugin。
作业DSL看起来与此类似:
...
pipelineJob("the pipeline job") {
parameters {
def branches = ['[Choose]']
getJson(server+ "/rest/request/to/gitlab...")
.values
.each { branch ->
if (branch.displayId.startsWith('feature')) {
branches.push(branch.displayId)
}
}
choiceParam(
'branch',
branches,
'Pick a branch.')
}
...
答案 1 :(得分:0)
对我来说 我使用Input阶段与运行的用户管道进行交互。管道是自己没有参数,但在运行时你有一个输入,询问用户他们想要建立你通过检查git projet启动管道,你使用工作平台与awk生成signe上的分支列表文件,然后您使用此文件来构建输入的选择。 您可以在此链接中看到示例:enter link description here