Jenkins - 内置变量访问

引言

最近一直困惑于 Jenkins 的一个环境变量 CAUSE, 在邮件插件中调用 ${CAUSE} 是可行的,但是在其它地方(执行 Shell 或 Python 脚本时),确只能得到 None 值。原来 Jenkins 内置变量是分为两类,一类只供邮件配置使用的配置变量,一类是全局环境变量,下面一起了解一下这些变量。

内容提要:

  1. Jenkins 内置变量查看
  2. Jenkins 内置变量访问
  3. Jenkins 内置邮件配置变量
  4. Jenkins 内置环境变量

Jenkins 内置变量查看

  1. Jenkins URL + /env-vars.html/
    例如: http://localhost:8080/env-vars.html/
    Jenkins - 内置变量访问_第1张图片
  2. Jenkins URL + /pipeline-syntax/globals
    例如: http://localhost:8080/pipeline-syntax/globals
    Jenkins - 内置变量访问_第2张图片

Jenkins 内置变量访问

列举一些常用的环境变量,注意 CAUSE 变量是用来邮件配置的,其它地方使用是 None 值。

Jenkins 邮件配置:
只是应用一下 ${CAUSE} 变量,具体邮件插件相关细节将在下次介绍。
Jenkins - 内置变量访问_第3张图片
邮件输出:
在这里插入图片描述

Shell 命令

通过 ${Env_Variable_Name}%{Env_Variable_Name}% 访问

Shell 脚本:

echo "JENKINS_HOME: ${JENKINS_HOME}"
echo "JENKINS_URL: ${JENKINS_URL}"
echo "BUILD_URL: ${BUILD_URL}" 
echo "BUILD_NUMBER: ${BUILD_NUMBER}" 
echo "JOB_URL: ${JOB_URL}" 
echo "JOB_NAME: ${JOB_NAME}"
echo "WORKSPACE: ${WORKSPACE}" 
echo "CAUSE: ${CAUSE}" 

Jenkins 配置:
Jenkins - 内置变量访问_第4张图片
Jenkins 输出:
Jenkins - 内置变量访问_第5张图片

Python 脚本

import os

print("JENKINS_HOME: {} ".format(os.getenv('JENKINS_HOME')))
print("JENKINS_URL: {} ".format(os.getenv('JENKINS_URL')))
print("BUILD_URL: {} ".format(os.getenv('BUILD_URL')))
print("BUILD_NUMBER: {} ".format(os.getenv('BUILD_NUMBER')))
print("JOB_URL: {} ".format(os.getenv('JOB_URL')))
print("JOB_NAME: {} ".format(os.getenv('JOB_NAME')))
print("WORKSPACE: {} ".format(os.getenv('WORKSPACE')))
print("CAUSE: {} ".format(os.getenv('CAUSE')))

Jenkins 配置:
Jenkins - 内置变量访问_第6张图片
Jenkins 输出:
Jenkins - 内置变量访问_第7张图片

Jenkins 内置邮件配置变量

变量 说明
${GIT_BRANCH} Git 分支
${FILE,path=“xxx”} xxx 为指定的文件,文件内容可以在邮件中显示。注意:xxx 是工作区目录的相对路径,不是绝对路径。
${JOB_DESCRIPTION} 显示项目描述。
${BUILD_NUMBER} 显示当前构建的编号。
${SVN_REVISION} 显示 svn 版本号。还支持 Subversion 插件出口的 SVN_REVISION_n 版本。
${CAUSE} 显示谁、通过什么渠道触发这次构建。
${CHANGES } 显示上一次构建之后的变化。
${BUILD_ID} 显示当前构建生成的 ID。
${PROJECT_NAME} 显示项目的全名。
${PROJECT_DISPLAY_NAME} 显示项目的显示名称。
SCRIPT 从一个脚本生成自定义消息内容。自定义脚本应该放在 “JENKINS_HOME/email-templates”。当使用自定义脚本时会默认搜索 $JENKINS_HOME/email-templatesdirectory 目录。其他的目录将不会被搜索。
${JENKINS_URL} 显示 Jenkins 服务器的 url 地址(可以在系统配置页更改)。
${BUILD_LOG_MULTILINE_REGEX} 按正则表达式匹配并显示构建日志。
${BUILD_LOG} 显示最终构建日志。
${PROJECT_URL} 显示项目的 URL 地址。
${BUILD_STATUS} 显示当前构建的状态(失败、成功等等)。
${BUILD_URL} 显示当前构建的URL地址。
${CHANGES_SINCE_LAST_SUCCESS} 显示上一次成功构建之后的变化。
${CHANGES_SINCE_LAST_UNSTABLE} 显示显示上一次不稳固或者成功的构建之后的变化。
${ENV} 显示一个环境变量。
${FAILED_TESTS} 如果有失败的测试,显示这些失败的单元测试信息。
${PROJECT_URL} 显示项目的 URL 。
JELLYSCRIPT 从一个 Jelly 脚本模板中自定义消息内容。有两种模板可供配置:HTML 和 TEXT。你可以在 JENKINS_HOME/email-templates 下自定义替换它。当使用自动义模板时,”template” 参数的名称不包含“.jelly”。
${TEST_COUNTS} 显示测试的数量。

Jenkins 内置环境变量

变量 说明
BRANCH_NAME 对于多分支项目,这将被设置为正在构建的分支的名称,例如,如果您希望从而 master 不是从特征分支部署到生产。
CHANGE_ID 对于与某种更改请求相对应的多分支项目,这将被设置为更改 ID,例如拉取请求号。
CHANGE_URL 对于与某种更改请求相对应的多分支项目,这将被设置为更改 URL。
CHANGE_TITLE 对于对应于某种变更请求的多分支项目,这将被设置为更改的标题。
CHANGE_AUTHOR 对于对应于某种变更请求的多分支项目,这将被设置为拟议更改的作者的用户名。
CHANGE_AUTHOR_DISPLAY_NAME 对于对应于某种变更请求的多分支项目,这将被设置为作者的人名。
CHANGE_AUTHOR_EMAIL 对于对应于某种变更请求的多分支项目,这将被设置为作者的电子邮件地址。
CHANGE_TARGET 对于对应于某种变更请求的多分支项目,这将被设置为可以合并更改的目标或基本分支。
BUILD_NUMBER 目前的编号,如 “153”
BUILD_ID 当前版本 ID,与 BUILD_NUMBER 相同,用于在 1.597+ 中创​​建的构建,但较旧版本的 YYYY-MM-DD_hh-mm-ss时间戳记
BUILD_DISPLAY_NAME 当前版本的显示名称,默认为“#153”。
JOB_NAME 此构建项目的名称,如 “foo” 或 “foo / bar”。
JOB_BASE_NAME 此建立项目的名称将剥离文件夹路径,例如 “bar / foo” 的 “foo”。
BUILD_TAG “jenkins- JOBNAME−{BUILD_NUMBER} ” 的字符串。JOB_NAME 中的所有正斜杠(/)都会用破折号( - )替换。方便放入资源文件,jar文件等,以方便识别。
EXECUTOR_NUMBER 识别执行此构建的当前执行程序(在同一台计算机的执行程序中)的唯一编号。这是您在“构建执行者状态”中看到的数字,但数字从 0 开始,而不是 1。
NODE_NAME 代理的名称,如果构建是代理,或者“主”,如果在主机上运行
NODE_LABELS 空格分隔的节点分配的标签列表。
WORKSPACE 分配给构建作为工作区的目录的绝对路径。
JENKINS_HOME Jenkins 主节点上分配的目录绝对路径存储数据。
JENKINS_URL 完整的 Jenkins 网址,例如 http:// server:port / jenkins /(注意:只有在系统配置中设置了Jenkins URL)
BUILD_URL 此构建的完整URL,如http:// server:port / jenkins / job / foo / 15 /(Jenkins URL 必须设置)
JOB_URL 此作业的完整URL,如http:// server:port / jenkins / job / foo /(必须设置 Jenkins URL)
SVN_REVISION Subversion 版本号,当前已被检出到工作区,如 “12345”
SVN_URL 当前已经检出到工作空间的 Subversion URL。

你可能感兴趣的:(Jenkins,jenkins,运维,Jenkins,内置变量,Jenkins,环境变量,CICD)