关于与分支名称中带有斜杠的多分支管道相关的各种问题,存在许多 stackoverflow 问题。我什至创建了一个詹金斯JIRA https://issues.jenkins-ci.org/browse/JENKINS-57324针对我的具体情况(最新的 Jenkins + 插件和配置文件提供程序插件)。不过我想得到一些澄清。我尝试查看源代码,但我迷失了,因为管道插件曾经被称为工作流插件,现在源代码项目被称为工作流聚合器(我认为),但是当我查看这个插件时,我无法理解它是如何关联的/将其他插件包含在插件列表中。以下是我的观察结果(如果重要的话,我使用的是 Windows):
- 过去,Jenkins 会在文件夹名称中使用三个字符 %2F 来代替分支中的 / 。
- 然后将其更改为 _ 而不是 %2F
- 现在回到 %2F (带有所有最新的插件)
这是我的问题:
- 是否有地方记录了为什么 %2F 被重新设置?
- 有人可以指出我上次使用的是哪个插件和哪个版本吗 _ 而不是 %2F 因为这让我感到悲伤,我想解决这个问题?
- 我可以使用一些代码来使用现有的最新插件配置此行为吗?我看到了这个post https://support.cloudbees.com/hc/en-us/articles/226122247-How-to-Customize-Checkout-for-Pipeline-Multibranch-但它没有为我提供声明性管道和 SVN 作为 SCM 的示例。声明性管道的问题是,本文中的代码要求您禁用声明性 SCM 签出步骤(使用skipDefaultCheckout() 选项),并且我不知道如何配置分支文件夹路径名。我不希望在 Jenkins 文件中指定远程 URL,而是在 Jenkins 作业配置中指定。
非常感谢任何帮助
你的第三个问题已经有了答案。
我可以使用一些代码来使用现有的最新插件配置此行为吗?
这个想法是,得到BRANCH_NAME
内置变量,并替换所有不是字母数字字符的内容。
稍后,使用此文件夹代替默认工作区。
在詹金斯文件中:
buildFolder = java.net.URLDecoder.decode(BRANCH_NAME, "UTF-8");
// Replace nasty chars
buildFolder = buildFolder.replaceAll("[^a-zA-Z0-9]", "_");
pipeline {
agent {
node {
label 'my_project'
customWorkspace "W:\\workdir\\${buildFolder}"
// or customWorkspace "/var/lib/jenkins/workspace/${buildFolder}"
}
}
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)