Jenkins Job DSL 中的合并参数



我在Job DSL中定义了管道作业。

它运行一个管道/Jenkinsfile,它从git中签出。

我希望人们能够输入从中提取 Jenkinsfile 的 git 分支 - (即在字符串中( - 或者,如果他们没有在分支中键入,则默认为我在 choiceParam 中设置的分支(即这将是"开发"或"master"(

这不起作用:

pipelineJob('some-job') {
parameters {
choiceParam('gitCreds', [gitCreds], 'Stash credential')
stringParam('gitUrl', 'https://some-repo.git', 'URL for the Stash repo')
stringParam('gitBranchOverride', '', 'Type in some feature branch here if you wish')
choiceParam('gitBranch', ['develop'], '...otherwise the job should default to a branch here')
}
definition {
cpsScm {
scm {
git {
branch('$gitBranchOverride' ?: '$gitBranch')
extensions {
wipeOutWorkspace()
}
remote {
credentials(gitCreds)
url ('$gitUrl')
}
}
}
}
}
}

如果我在 gitBranchOverride中输入一个值,它就可以工作,但如果我不这样做,它似乎枚举了所有分支,并检查出一个随机分支 - 即它不遵守 gitBranch 中的值

不知道我是否正确理解了您的问题,但这就是我创建管道作业的代码的方式:

def git_branch = getBinding().getVariable('GIT_BRANCH')
def gitrepo = "ssh://git@some.git.repo/somerepo.git"
def credential_id = "awesomecredentials"
pipelineJob("MyAwesomeJob") {
description("""This job is awesomenn__input__:n* My parametern* Branchnn__branch__: ${git_branch}""")
parameters {
stringParam(name='MyParameter', description='AwesomeParameterHere')
stringParam('branch', defaultValue='origin/develop', description='Branch to build')
}
definition {
cpsScm {
scm {
git {
branch('$branch')
remote {
url("gitrepo")
credentials(credential_id)
}
}
scriptPath("jenkins/my_awesome_pipeline/Jenkinsfile")
}
}
}
}

有了这个,我的作业是使用一个参数创建的,用于选择默认分支的参数。

相关内容

  • 没有找到相关文章

最新更新