Jenkins 持久化可编辑全局变量
Jenkins Persistent Editable Global Variable
我正在寻找一个 plugin/approach 让我设置和读取持久全局变量以在作业之间使用的工具。
场景是我有 CI 作业在代码库的各个分支上运行测试,我想关联一个与发布分支的最后一个稳定版本相对应的内部版本号。即
Build No Branch Result GolbalSharedThingVal
5 release Success 1.5
6 dev Fail 1.5
7 dev Success 1.7
8 release Unstable 1.7
9 release Success 1.9
10 release Fail 1.9
然后在我的部署工作中,我想使用 groovy post 构建操作使用版本注释构建:
manager.addShortText(" ${manager.build.env.get('GolbalSharedThingVal')}")
有人对 GolbalSharedThingVal 有什么建议吗?
非常感谢,
瓦卡
EnvInject 插件是 任何与环境变量相关的插件。
不知道如何设置持久性全局变量(这违反了 Jenkins 的设计原则),但您可以让作业将值导出到属性文件,其他作业从属性文件中读取值在初始化时将其作为环境变量公开给其他构建步骤。
当然 属性 文件必须位于 Jenkins master 的中央某处
如果你确定不同的jobs/stages 运行在同一个代理上,你可以使用一个文件作为持久存储。在声明式管道中,这看起来像
stage('myStage') {
steps {
echo 'in myStage'
sh '''
# get value from file into environment variable
export PERSISTENTVAR=`cat $HOME/persistent_var_file`
# do some stuff here to e.g. change $PERSISTENTVAR
# save env variable into file for later use
echo $PERSISTENTVAR > $HOME/persistent_var_file
'''
}
}
我正在寻找一个 plugin/approach 让我设置和读取持久全局变量以在作业之间使用的工具。
场景是我有 CI 作业在代码库的各个分支上运行测试,我想关联一个与发布分支的最后一个稳定版本相对应的内部版本号。即
Build No Branch Result GolbalSharedThingVal
5 release Success 1.5
6 dev Fail 1.5
7 dev Success 1.7
8 release Unstable 1.7
9 release Success 1.9
10 release Fail 1.9
然后在我的部署工作中,我想使用 groovy post 构建操作使用版本注释构建:
manager.addShortText(" ${manager.build.env.get('GolbalSharedThingVal')}")
有人对 GolbalSharedThingVal 有什么建议吗?
非常感谢, 瓦卡
EnvInject 插件是 任何与环境变量相关的插件。
不知道如何设置持久性全局变量(这违反了 Jenkins 的设计原则),但您可以让作业将值导出到属性文件,其他作业从属性文件中读取值在初始化时将其作为环境变量公开给其他构建步骤。
当然 属性 文件必须位于 Jenkins master 的中央某处
如果你确定不同的jobs/stages 运行在同一个代理上,你可以使用一个文件作为持久存储。在声明式管道中,这看起来像
stage('myStage') {
steps {
echo 'in myStage'
sh '''
# get value from file into environment variable
export PERSISTENTVAR=`cat $HOME/persistent_var_file`
# do some stuff here to e.g. change $PERSISTENTVAR
# save env variable into file for later use
echo $PERSISTENTVAR > $HOME/persistent_var_file
'''
}
}