持续集成的环境变量

功能介绍

持续集成过程中,我们总会将一些配置(如:账号密码/版本号等)信息以环境变量的形式注入到构建过程中。CODING 持续集成支持多种环境变量使用形式,您可以同时使用以下几种方式来为构建过程注入环境变量,其优先级为从上到下(排在前面的配置优先级最高):

  • Jenkinsfile 中的 withEnv
  • Jenkinsfile 中的 environment
  • 构建计划(Job)中的启动参数
  • 构建计划(Job)设置中的环境变量
  • 构建过程中系统内置的环境变量

下文将详细介绍这几种方式的详细说明。

Jenkinsfile 中的 withEnv 和 environment

您可以在 Jenkinsfile 中使用 environment 来定义环境变量(如下所示):

pipeline {
    agent any
    environment {
        MY_PROJECT = 'project-1'
        MY_TEAM    = 'team-1'
    }
    stages {
        stage('Build') {
            steps {

                echo "MY_PROJECT is ${MY_PROJECT}"
                echo "MY_TEAM is ${MY_TEAM}"
                // 输出内容如下所示:
                // MY_PROJECT is project-1
                // MY_TEAM is team-1
            }
        }
    }
}

在构建过程中,可能需要在不同的阶段使用同名的环境变量。可以使用 withEnv 来针对部分操作设置环境变量,避免全局的环境变量污染。 withEnv 中所执行的 step ,都将优先使用 withEnv 设置的环境变量。具体效果可以参考以下例子:

pipeline {
    agent any
    environment {
        MY_PROJECT = 'project-1'
        MY_TEAM    = 'team-1'
    }
    stages {
        stage('Build') {
            steps {

                echo "MY_PROJECT is ${MY_PROJECT}"
                echo "MY_TEAM is ${MY_TEAM}"
                // 输出内容如下所示:
                // MY_PROJECT is project-1
                // MY_TEAM is team-1

                // withEnv 中设置的环境变量只对作用域下的 step 有效,优先级高于 environment 
                withEnv(['MY_PROJECT=project-2']) {

                    echo "MY_PROJECT is ${MY_PROJECT}"
                    echo "MY_TEAM is ${MY_TEAM}"                    
                    // 输出内容如下所示:
                    // MY_PROJECT is project-2
                    // MY_TEAM is team-1

                }
            }
        }
    }
}

如果您想了解更多 Jenkinsfile 环境变量相关内容,可以拓展阅读:Jenkins 官方文档——使用环境变量

构建计划中的启动参数

优先级仅次于 Jenkinsfile 中配置的环境变量,您可以在启动构建计划时,选择或填写对应的环境变量值。

构建计划设置中的环境变量

除了在 Jenkinsfile 中硬编码环境变量,还可以在构建计划的配置中进行设置,您可以将构建计划中的环境变量配置视为启动参数的默认值。

构建过程中系统内置的环境变量

CODING 持续集成在构建过程中,会为每一个构建任务注入对应的环境变量,默认注入的环境变量不完整列表如下(持续更新中):

GIT_REPO_URL: Git 仓库 SSH 地址
CI_BUILD_NUMBER: 构建编号
HOME: 构建 home 目录
WORKSPACE: 源代码 workspace 目录
PROJECT_WEB_URL: 项目网页地址
PROJECT_NAME: 项目 URL
PROJECT_ID: 项目 ID
CREDENTIALS_ID: 部署私钥凭据 CredentialsId
GIT_DEPLOY_KEY: 部署私钥
GIT_BUILD_REF: 构建对应的 Git 修订版本号
GIT_URL: Git 仓库 SSH 协议地址
CODING_SCM_ERROR_MESSAGE: 仓库检出错误信息
REF: 改动的 Ref 
GIT_COMMIT: 当前版本的修订版本号
GIT_AUTHOR_NAME: 本版本最新提交作者名称
GIT_AUTHOR_EMAIL: 本版本最新提交作者邮箱
GIT_COMMITTER_NAME: 本版本最新提交者名称
GIT_COMMITTER_EMAIL: 本版本最新提交者邮箱
GIT_LOCAL_BRANCH: 本地分支名称
...
上一篇持续集成的环境变量
文档是否对您有用?
感谢反馈有用
感谢反馈没用