内置环境变量和项目自定义环境变量
GitLab CI
中有一些内置的环境变量简单说几个如下:
- CI_PROJECT_NAME(当前正在构建的项目名称)
- CI_COMMIT_TAG (commit 的 tag 名称,任务对应的 tag)
- CI_COMMIT_REF_NAME(用于构建项目的分支或Git tag名称)
- CI_REPOSITORY_URL (Git 仓库地址)
- GITLAB_USER_EMAIL (触发CI的用户邮箱)
你也可以使用 export 关键字打印出所有的变量,需要注意的是,该关键字也会打印出任务中定义的所有私有变量
yml
job:
script:
- export
内置变量打印的例子如下:
js
export CI_JOB_ID = '50'
export CI_COMMIT_SHA = 'XXXX'
export CI_COMMIT_SHORT_SHA = 'XXX'
export CI_COMMIT_REF_NAME = 'master'
export CI_REPOSITORY_URL = 'XXXX'
export CI_COMMIT_TAG = '1.0.0'
export CI_JOB_NAME = 'XXX'
export CI_JOB_STAGE = 'XX'
export CI_JOB_MANUAL = 'XX'
export CI_JOB_TRIGGERED = 'XX'
export CI_JOB_TOKEN = 'XXX'
export CI_PIPELINE_ID = 'XX'
export CI_PIPELINE_IID = 'XX'
export CI_PAGES_DOMAIN = 'XX'
export CI_PAGES_URL = 'XX'
export CI_PROJECT_ID = 'XX'
export CI_PROJECT_DIR = 'XX'
export CI_PROJECT_NAME = 'XX'
export CI_PROJECT_TITLE = 'XX'
export CI_PROJECT_NAMESPACE = 'XX'
export CI_PROJECT_PATH = 'XX'
export CI_PROJECT_URL = 'XX'
export CI_REGISTRY = 'XX'
export CI_REGISTRY_IMAGE = 'XX'
export CI_REGISTRY_USER = 'XX'
export CI_REGISTRY_PASSWORD = 'XX'
export CI_RUNNER_ID = 'XX'
export CI_RUNNER_DESCRIPTION = 'XX'
export CI_RUNNER_TAGS = 'docker, linux'
export CI_SERVER = 'yes'
export CI_SERVER_URL = 'https://example.com'
export CI_SERVER_HOST = 'example.com'
export CI_SERVER_PORT = '443'
export CI_SERVER_PROTOCOL = 'https'
export CI_SERVER_NAME = 'GitLab'
export CI_SERVER_REVISION = '70606bf'
export CI_SERVER_VERSION = '8.9.0'
export CI_SERVER_VERSION_MAJOR = '8'
export CI_SERVER_VERSION_MINOR = '9'
export CI_SERVER_VERSION_PATCH = '0'
export GITLAB_USER_EMAIL = 'CC'
export GITLAB_USER_ID = '42'
除了使用内置环境变量、使用variables
关键字定义的变量外,还可以再当前项目创建变量如下:
创建后也可以直接使用如下:
yml
variables:
FILE_NAME: dist.zip
stages:
- build
build:
stage: build
script:
- echo ${FILE_NAME} # variables 定义的变量
- echo ${CI_PROJECT_NAME} # 内置变量
- echo ${TEST_KEY} # 在项目下面自定义的变量
tags:
- runner
还可以再GitLab
一个目录分组下创建该目录下的公共环境变量,公共环境变量可以再当前分组下面的项目都可以直接使用,用法跟再项目下面自定义变量一样。