我有一堆存储库,它们使用(部分)相同的Jenkins共享库来运行测试、Docker构建等。到目前为止,共享库大大降低了这些存储库的维护成本。
然而,事实证明,基本上所有管道都使用相同的选项集,例如:
@Library("myExample.jenkins.shared.library") _
import org.myExample.Constants
pipeline {
options {
disableConcurrentBuilds()
parallelsAlwaysFailFast()
}
agent {
label 'my-label'
}
stages {
stage {
runThisFromSharedLibrary(withParameter: "foo")
runThatFromSharedLibrary(withAnotherParameter: "bar")
...
...
换句话说,我需要在我创建的任何新的特定管道中复制和粘贴相同的选项片段。另外,这意味着当我决定更改选项集时,我需要单独编辑每个Jenkinsfile(以及我们内部使用的任何同行评审过程)。
我非常希望以某种方式消除这种维护开销。我如何将选项设置委托给一个共享库,或者同时为所有管道配置所需的选项?
1条答案
按热度按时间ssgvzors1#
有两个选项对您帮助最大:
*在主/代理级别使用全局变量。
1.请转到Jenkins--〉管理Jenkins--〉配置系统--〉全局属性。
1.选中环境变量框,然后为变量添加名称和值;
那么你将能够在你的Jenkins管道中正常使用它,如下代码片段所示。
*将整个管道 Package 在共享库内的函数中。
Jenkinsfile将如下所示:
共享库函数