【发布时间】:2017-12-14 06:04:14
【问题描述】:
我们已经使用 Jenkins Multibranch Pipeline Plugin 成功建立了一个构建管道,该插件在大多数情况下都运行良好,但我们遇到了一个困扰我们的问题:Jenkinsfile 包含一组属性,这些属性也会显示出来在 UI 中,但如何为各个分支设置默认值?
这就是我们Jenkinsfile 中属性定义的样子:
properties([
parameters([
string(defaultValue: 'somevalue', description: 'Some description', name: 'SOME_VALUE'),
string(defaultValue: 'asdfasdfasdfasdfdasdasdasdasd...', description: 'Client ID', name: 'TEST_CLIENT_ID'),
// ... more properties
string(defaultValue: '', description: 'Enter non-empty value to skip tests', name: 'SKIP_TESTS'),
]),
[$class: 'RebuildSettings', autoRebuild: true, rebuildDisabled: false],
pipelineTriggers([])
])
我对每个分支构建管道都有一个“显示配置”(管道是自动生成的),我可以在“使用参数构建”时输入值,但我似乎无法保存分支默认值?根本没有“保存”按钮。
我们是否错误地配置了 Jenkins,或者我是否在其他地方这样做了?我想要实现的是能够为每个分支定义属性的默认值。
已安装的版本:
- Jenkins 版本:2.19.4
- 多分支管道插件版本:2.9.2
【问题讨论】:
-
只是为了澄清:你在不同的分支上有不同的默认值吗?它不起作用?
-
没错。或者更好地说:这就是我想要的。在源代码中,我可以只指定一个默认值(或?)。
-
据我了解,每个分支都有自己的 Jenkinsfile 版本。因此,您可以独立更改默认值。在每个分支上,它将是恒定的,但在各个分支上是不同的。
-
是的,当然,但这并没有真正的帮助,因为这些更改通常也会在之后合并到 master,这在最好的情况下只会产生很多合并冲突,但最坏的情况会混淆事物。在我们的例子中,这些是用于在 OAuth 授权场景中解析重定向 URI 的客户端 ID。这些需要不同,因为功能构建部署到不同的位置。
-
你能让它们可计算吗? IE。在某处存储一个 db(或只是 src 中的一个文本文件)并使用当前提交中的元数据、分支名称或对 SCM 服务器的 REST API 请求进行检索。
标签: git jenkins build branch jenkins-pipeline