【发布时间】:2020-09-01 15:33:22
【问题描述】:
在 Jenkinsfile 中,要从另一个作业开始参数化管道作业,我有以下代码 sn-p:
build job: 'build-sharpen-branch', parameters: [
[$class: 'StringParameterValue', name: 'BRANCHNAME', value: mergeBranchname]
]
这已经按预期工作,它将在 URL https://$JENKINS_URL/job/build-sharpen-branch/ 处开始工作。
现在我想开始一份工作,即 Bitbucket 文件夹中多分支项目的一个分支。作业的 URL 是https://$JENKINS_URL/job/iText%207%20.NET/job/sharpen/job/feature%2FQA-10738/。
-
iText%207%20.NET是 Bitbucket 项目的名称。 -
sharpen是多分支作业的名称。 -
feature%2FQA-10738是分支的名称,urlencoded。
我阅读了以下关于不在文件夹内启动多分支作业的问题:
- Trigger Multibranch Job from another
- Triggering a multibranch pipeline job from an other multibranch pipeline
- How to trigger Multibranch Pipeline Jenkins Job within regular pipeline job?
从那里的答案中,我推测语法是 $JOB/$BRANCH(其中 $BRANCH 是 URL 编码的,用于将 feature/foo 之类的分支重命名为 feature%2Ffoo)。
从Jenkins pipeline with folder plugin. How to build a job located different folder 我了解到文件夹内作业的语法是$FOLDER/$JOB。
结合两者,我得出的结论是文件夹+作业+分支的语法很可能是$FOLDER/$JOB/$BRANCH。
所以我尝试了这段代码:
build job: "iText%207%20.NET/sharpen/${java.net.URLEncoder.encode branchName, 'UTF-8'}"
与
- 文件夹 =
iText%207%20.NET - 工作 =
sharpen - branch =
${java.net.URLEncoder.encode branchName, 'UTF-8'}(URLEncoder 将分支名称中的/更改为%2F)
令我惊讶的是,当我运行它时,我得到了一个错误:
错误:找不到名为 iText%207%20.NET/sharpen/feature%2FQA-10738 的项目
如上所述,在 URL https://$JENKINS_URL/job/iText%207%20.NET/job/sharpen/job/feature%2FQA-10738/ 上存在作业。
Bitbucket 文件夹中的多分支作业的正确语法是什么?
【问题讨论】: