Jenkins中内置了很多环境变量,比如JENKINS_HOME,还有BUILD_NUMBER等。这篇文章将脚本方式能够使用的环境变量进行整理,同时通过一个Jenkinsfile中使用的例子进行使用的说明。
环境变量
Jenkins的脚本中能够引用的常用环境变量如下所示。
环境变量 | 说明 | 备考 |
---|---|---|
BRANCH_NAME | 在multibranch项目中,BRANCH_NAME用于标明构建分支的名称。 | - |
CHANGE_ID | 在multibranch的项目中,相较于特定的变更请求,用于标明变更ID,比如Pull Request | 不支持的情况下此环境变量会被unset |
CHANGE_URL | 在multibranch的项目中,相较于特定的变更请求,用于标明变更的URL | 不支持的情况下此环境变量会被unset |
CHANGE_TITLE | 在multibranch的项目中,相较于特定的变更请求,用于标明变更的标题 | 不支持的情况下此环境变量会被unset |
CHANGE_AUTHOR | 在multibranch的项目中,相较于特定的变更请求,用于标明提交变更的人员的名称 | 不支持的情况下此环境变量会被unset |
CHANGE_AUTHOR_DISPLAY_NAME | 在multibranch的项目中,相较于特定的变更请求,用于标明提交变更的人员的显示名称 | 不支持的情况下此环境变量会被unset |
CHANGE_AUTHOR_EMAIL | 在multibranch的项目中,相较于特定的变更请求,用于标明提交变更的人员的邮件地址 | 不支持的情况下此环境变量会被unset |
CHANGE_TARGET | 在multibranch的项目中,相较于特定的变更请求,用于合并后的分支信息等 | 不支持的情况下此环境变量会被unset |
BUILD_NUMBER | 当前的构建编号 | - |
BUILD_ID | 在1.597版本后引进,表示当前构建ID | 使用YYYY-MM-DD_hh-mm-ss的时间戳以表示之前的构建信息 |
BUILD_DISPLAY_NAME | 当前构建的显示信息 | - |
JOB_NAME | 构建Job的全称,包含项目信息 | - |
JOB_BASE_NAME | 除去项目信息的Job名称 | - |
BUILD_TAG | 构建标签 | 生成的形为jenkins-JOB_NAME的构建标签 |
EXECUTOR_NUMBER | 执行器编号,用于标识构建器的不同编号。 | 编号从0开始 |
NODE_NAME | 构建节点的名称 | 如果在master节点上执行的话,名称为master |
NODE_LABELS | 节点标签 | - |
WORKSPACE | 构建时使用的工作空间的绝对路径 | - |
JENKINS_HOME | JENKINS根目录的绝对路径 | 用于指定Jenkins的Master节点数据存储的路径 |
JENKINS_URL | Jenkins的URL信息 | 只有当系统配置中被设定才会显示。 |
BUILD_URL | 构建的URL信息 | 只有当系统配置中被设定才会显示。 |
JOB_URL | 构建Job的URL信息 | 只有当系统配置中被设定才会显示。 |
GIT_COMMIT | git提交的hash码 | - |
GIT_PREVIOUS_COMMIT | 当前分支上次提交的hash码 | 仅在信息存在的情况下才会显示 |
GIT_PREVIOUS_SUCCESSFUL_COMMIT | 当前分支上次成功构建时提交的hash码 | 仅在信息存在的情况下才会显示 |
GIT_BRANCH | 远程分支名称 | 仅在信息存在的情况下才会显示 |
GIT_LOCAL_BRANCH | 本地分支名称 | - |
GIT_URL | 远程URL地址 | 当存在多个URL地址的情况下,引用方式依次为GIT_URL_1、 GIT_URL_2等 |
GIT_COMMITTER_NAME | Git提交者的名称 | - |
GIT_AUTHOR_NAME | Git Author的名称 | - |
GIT_COMMITTER_EMAIL | Git提交者的email地址 | - |
GIT_AUTHOR_EMAIL | Git Author的email地址 | - |
MERCURIAL_REVISION | Mercurial的版本ID信息 | - |
MERCURIAL_REVISION_SHORT | Mercurial的版本ID缩写 | - |
MERCURIAL_REVISION_NUMBER | Mercurial的版本号信息 | - |
MERCURIAL_REVISION_BRANCH | 分支版本信息 | - |
MERCURIAL_REPOSITORY_URL | 仓库URL信息 | - |
SVN_REVISION | Subversion的当前版本信息 | - |
SVN_URL | 当前工作空间中被checkout的Subversion工程的URL地址信息 | - |
引用方式
以JENKINS_HOME为例,在Jenkinsfile中使用环境变量的方式如下所示
引用方式:${env.JENKINS_HOME}
示例Jenkinsfile
示例
本文示例Jenkinsfile将流水线分按照功能分为逻辑上的三段:构建(Build) 、测试(Test)、部署(Deploy),顺序如下所示。