Jenkins 环境变量
-> 来源
使用变量在流水线脚本中是非常方便且强大的功能,变量的来源主要有三个部分
- 任务运行所在的节点的系统环境变量(增量需要重新建立连接生效)
- Jenkins 及安装的插件提供的全局变量
http://<jenkins-url>/pipeline-syntax/globals
对应的全局变量http://<jenkins-url>/systemInfo
(对应系统管理
->系统信息
)环境变量
的部分
def env = System.getenv() print env
1
2http://<jenkins-url>/env-vars.html
, 在任务执行脚本中可以使用的环境变量- 在
系统管理
->系统配置
->全局属性
中添加的环境变量 - 插件提供的环境变量参考插件使用说明
- 在流水线脚本中动态定义的环境变量
- 流水线定义的参数在运行过程中会被设定为同名环境变量
-> 全局变量
参考 http://<jenkins-url>/pipeline-syntax/globals
- pipeline
- scm
- currentBuild
- env
- params
- docker
-> 使用
- 全局变量可在脚本中直接使用,如
pipeline
,scm
,currentBuild
等 - 推荐统一使用
"${env.ENV_NAME}"
的方式来引用全局环境变量env
里的内容注意
特别注意要使用双引号包裹环境变量
- 插件暴露的接口函数, 可直接使用
- eg:
checkout
- eg:
- 有一些插件变量,是作为参数传递给插件暴露的函数接口,使用时不能使用双引号包裹
- eg: 邮件插件,
emailext to: '$DEFAULT_RECIPIENTS'
- eg: 邮件插件,
-> 常用环境变量
//env
echo "workspace: ${env.WORKSPACE}"
echo "node: ${env.NODE_NAME}"
echo "job: ${env.JOB_NAME}"
echo "curr-branch: ${env.BRANCH_NAME}" //multi branch only
// GIT_BRANCH = 'origin/' + sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()
echo "author: ${env.CHANGE_AUTHOR}"
echo "build_id: ${env.BUILD_NUMBER}"
echo "log: ${env.BUILD_URL}console"
echo "job url: ${env.JOB_URL}"
echo "display url: ${env.RUN_DISPLAY_URL}"
//currentBuild
echo "result: ${currentBuild.result}" //可读写,中间过程时可能为null
echo "result: ${currentBuild.result}" //只读,not null
echo "duration: ${currentBuild.durationString}"
echo "fullDisplayName: ${currentBuild.fullDisplayName}"
// folder1 » folder2 » foo #123
echo "absoluteUrl: ${currentBuild.absoluteUrl}"
script{
Date start = new Date(currentBuild.startTimeInMillis)
Date end = new Date(currentBuild.startTimeInMillis + currentBuild.duration)
String startDate = start.format("YYYY-MM-dd HH:mm:ss.Ms")
String endDate = end.format("YYYY-MM-dd HH:mm:ss.Ms")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
编辑此页 (opens new window)
更新于: 2019-10-01