源代码控制中的 Jenkinsfile 共享参数
Jenkinsfile shared params in source control
我是 jenkins 的新手,继承了一堆代码质量未知的声明性管道。每个管道都使用文件夹属性来设置共享的默认参数值。这将基本变量置于源代码控制之外,从而终止了我们的 PR 过程和我们的调试历史记录。例如
//pipelineA/Jenkinsfile
pipeline {
parameters {
string name: 'important_variable', defaultValue: folderProperty('important_variable')
}
//etc
}
//pipelineB/Jenkinsfile
pipeline {
parameters {
string name: 'important_variable', defaultValue: folderProperty('important_variable')
}
//etc
}
然后在根文件夹中设置一个属性important_variable
为"Hello World"
有没有办法通过设置文件夹 属性 从 yaml 中提取变量,或者使用共享库来将其纳入源代码管理?
感谢您的帮助!
万一有人读到这篇文章,我们的结局是:
- 创建
bootstrap.groovy
文件
- 此文件必须放在您的存储库绝对顶部的
/vars
目录中
- 使用 Jenkins UI 我们转到管道的父目录 > config 并创建了一个名为
config-lib
的共享库,它指向我们的 repo 并自动公开 bootstrap.groovy
文件方法作为只要文件在正确的地方
bootstrap.groovy
文件有一个 call
方法,returns 一个带有我们默认参数的键值对的映射。此方法必须命名为 call
- 在管道的
Jenkinsfile
中,我们包括以下两行:
@Library("config-lib") _
config = bootstrap()
库装饰器(注意它以_
结尾)导入jenkins[=64=中定义的config-lib
方法]
bootstrap 函数调用 bootstrap.groovy
文件中的 call
方法 config-lib
库
- 在 Jenkinsfile 中使用
config
映射来填充参数默认值
pipeline {
parameters {
string name: 'foo', defaultValue: config.foo
}
大功告成。
这个视频帮助很大:https://youtu.be/Wj-weFEsTb0
我是 jenkins 的新手,继承了一堆代码质量未知的声明性管道。每个管道都使用文件夹属性来设置共享的默认参数值。这将基本变量置于源代码控制之外,从而终止了我们的 PR 过程和我们的调试历史记录。例如
//pipelineA/Jenkinsfile
pipeline {
parameters {
string name: 'important_variable', defaultValue: folderProperty('important_variable')
}
//etc
}
//pipelineB/Jenkinsfile
pipeline {
parameters {
string name: 'important_variable', defaultValue: folderProperty('important_variable')
}
//etc
}
然后在根文件夹中设置一个属性important_variable
为"Hello World"
有没有办法通过设置文件夹 属性 从 yaml 中提取变量,或者使用共享库来将其纳入源代码管理?
感谢您的帮助!
万一有人读到这篇文章,我们的结局是:
- 创建
bootstrap.groovy
文件 - 此文件必须放在您的存储库绝对顶部的
/vars
目录中 - 使用 Jenkins UI 我们转到管道的父目录 > config 并创建了一个名为
config-lib
的共享库,它指向我们的 repo 并自动公开bootstrap.groovy
文件方法作为只要文件在正确的地方 bootstrap.groovy
文件有一个call
方法,returns 一个带有我们默认参数的键值对的映射。此方法必须命名为call
- 在管道的
Jenkinsfile
中,我们包括以下两行:
@Library("config-lib") _
config = bootstrap()
库装饰器(注意它以
_
结尾)导入jenkins[=64=中定义的config-lib
方法]bootstrap 函数调用
bootstrap.groovy
文件中的call
方法config-lib
库
- 在 Jenkinsfile 中使用
config
映射来填充参数默认值
pipeline {
parameters {
string name: 'foo', defaultValue: config.foo
}
大功告成。
这个视频帮助很大:https://youtu.be/Wj-weFEsTb0