前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins环境变量(上)

Jenkins环境变量(上)

原创
作者头像
陈不成i
修改2021-06-03 18:03:38
6790
修改2021-06-03 18:03:38
举报
文章被收录于专栏:ops技术分享

一.环境变量

环境变量可以被看作是pipeline与Jenkins交互的媒介。比如,可以在pipeline中通过BUILD_NUMBER变量知道构建任务的当前构建次数。环境变量可以分为Jenkins内置变量和自定义变量。

在pipeline执行时,Jenkins通过一个名为env的全局变量,将Jenkins内置环境变量暴露出来。其使用方法有多种,示例如下:

  1. pipeline {
  2. agent any
  3. stages {
  4. stage('Example') {
  5. steps {
  6. echo "Running ${env.BUILDNUMBER} on ${env.JENKINS_URL}" # 方法1 推荐
  7. echo "Running $env.BUILDNUMBER on $env.JENKINS_URL" # 方法2
  8. echo "Running ${BUILDNUMBER} on ${JENKINS_URL}" # 方法3 不推荐,难排查
  9. }
  10. }
  11. }
  12. }

默认env的属性可以直接在pipeline中引用。所以,以上方法都是合法的。但是不推荐方法三,因为出现变量冲突时,非常难查问题。echo只是为了展示,实际应用可以修改变量来达到不同的定制化。

通过访问http://localhost:8080/env-vars.html/或者http://localhost:8080/pipeline-syntax/globals#env来获取完整列表。在列表中,当一个变量被声明为”For a multibranch project”时,代表只有多分支项目才会有此变量。

打印当前环境变量

  1. sh "printenv" //打印环境变量

二.自定义环境变量

当pipeline变得复杂时,我们就会有定义自己的环境变量的需求。声明式pipeline提供了environment指令,方便自定义变量。比如:

  1. pipeline {
  2. agent any
  3. environment {
  4. CC = "clang"
  5. }
  6. stages {
  7. stage("Example") {
  8. environment {
  9. DEBUG_FLAGS = "-g"
  10. }
  11. steps {
  12. sh "${CC} ${DEBUG_FLAGS}"
  13. sh "printenv"
  14. }
  15. }
  16. }
  17. }

environment指令可以用在pipeline中定义,作用域就是整个pipeline,当定义在stage阶段,只在当前stage有效。

环境变量的互相引用:

  1. environment {
  2. __server_name = 'mail-server'
  3. __version = "${BUILD_NUMBER}"
  4. __artifact_name = "${__server_name}-${__version}.jar"
  5. }

技巧:

自定义变量时,为避免命名冲突,可根据项目或公司加上统一前缀,如__server_name,__就是前缀。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.环境变量
  • 二.自定义环境变量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档