如何测试使用分支名称的Jenkins管道(或其他jenkins脚本)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何测试使用分支名称的Jenkins管道(或其他jenkins脚本)?相关的知识,希望对你有一定的参考价值。
如果我有一个Jenkins管道脚本(虽然原理可以适用于任何Jenkins脚本),它具有不同的行为,具体取决于构建哪个分支,如何在不将其合并到该分支的情况下测试它是否正常工作?在管道脚本中,它使用branch
关键字和测试env.BRANCH_NAME进行了测试。我认为后者可能会以某种方式覆盖,但我可以看到。
只是为了澄清一下,我把它放在Jenkinsfile的顶部:
def isSpecialBranch = env.BRANCH_NAME ==~ *reg-ex*
此外,还有许多节点
when {
branch 'xxxxx'
}
基本上我想测试一旦将更改合并到一个适合该模式的分支名称,管道就会正常运行。
答案
您可以使用Jenkins Pipeline Unit来模拟分支。
你甚至可以嘲笑Jenkins variables和那种东西。
无论如何,编写when表达式的正确方法是这样的(例如匹配master):
when {
expression { (branch == 'origin/master') }
}
或(例如,匹配开发,功能或修补程序)
when {
expression { (branch == 'origin/develop' || branch.matches('origin\\/(feature|hotfix)+\\/.*')) }
}
希望能帮助到你。
另一答案
你可以试试这个:
static def getBranchName(scm)
{
return scm.branches[0].name
}
这需要以提升的权限运行,因此这是我的共享库中的Utilities类的一部分。
以上是关于如何测试使用分支名称的Jenkins管道(或其他jenkins脚本)?的主要内容,如果未能解决你的问题,请参考以下文章
在 Jenkins Pipeline/Jenkinsfile 中获取 git 分支名称
如何让通用 Webhook 触发器插件与 Jenkins 中的多分支管道一起使用?