1. 变量使用
1.1 使用预定义的环境变量
//比如构建 Docker 镜像,定义缓存目录
variables:
REGISTRY: $CI_REGISTRY/edu-java-demo/edu-java-spring
MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2"
...
1.2 创建一个自定义环境变量
创建自定义环境变量有两种方式:
- .gitlab-ci.yml
gitlab UI 页面
- 项目变量
- 组变量
(1)通过 UI 定义
组变量
: 组页面 -> 设置 -> CI/CD -> 变量
项目变量
:设置 -> CI/CD -> 变量
(2) .gitlab-ci.yml 中定义
在 .gitlab-ci.yml 中定义变量,可以在两个地方,全局和job中
variables:
TEST: "HELLO WORLD"
job1:
variables:
TEST2: "HELLO WORLD2"
2.3 变量使用示例
variables:
REGISTRY: $CI_REGISTRY/edu-java-demo/edu-java-spring
test_variabl:
stage: test
variables:
JOB: test variable
script:
- echo "${CI_PROJECT_DIR}"
- echo "${AISHANGWEI}"
- echo "${HARBOR_USER}/${HARBOR_PW}"
- echo "${REGISTRY}"
- echo $JOB
- echo "--------------"
- export
//输出如下
Running with gitlab-runner 12.10.0 (c553af1a)
on host20133-docker 6FzQVSkX
Preparing the "docker" executor
00:00
Using Docker executor with image harbor.xiodi.cn/tools/alpine:3.11 ...
Pulling docker image harbor.xiodi.cn/tools/alpine:3.11 ...
Using docker image sha256:cc0abc535e36a7ede71978ba2bbd8159b8a5420b91f2fbc520cdf5f673640a34 for harbor.xiodi.cn/tools/alpine:3.11 ...
Preparing environment
00:03
Running on runner-6fzqvskx-project-1-concurrent-0 via bcff4f9f7900...
Getting source from Git repository
00:02
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /builds/edu-java-demo/edu-java-spring/.git/
From https://gitlabtest.xiodi.cn/edu-java-demo/edu-java-spring
* [new ref] refs/pipelines/10 -> refs/pipelines/10
59dd48f..e15e65b feature-1 -> origin/feature-1
Checking out e15e65bb as feature-1...
Removing public/
Removing vendor/
Skipping Git submodules setup
Restoring cache
00:01
Downloading artifacts
00:02
Running before_script and script
00:02
$ echo "${CI_PROJECT_DIR}"
/builds/edu-java-demo/edu-java-spring
$ echo "${AISHANGWEI}"
aishangwei-group
$ echo "${HARBOR_USER}/${HARBOR_PW}"
harbor/xiodi.cn123
$ echo "${REGISTRY}"
/edu-java-demo/edu-java-spring
$ echo $JOB
test variable
$ echo "--------------"
--------------
$ export
export AISHANGWEI='aishangwei-group'
export CI='true'
export CI_API_V4_URL='https://gitlabtest.xiodi.cn/api/v4'
export CI_BUILDS_DIR='/builds'
export CI_BUILD_BEFORE_SHA='59dd48fbff2995d9fcf982192f68800dacf042c8'
export CI_BUILD_ID='21'
export CI_BUILD_NAME='test_variabl'
export CI_BUILD_REF='e15e65bb132cebbe73e5f7a23b5f33a5ffd6b9b3'
export CI_BUILD_REF_NAME='feature-1'
export CI_BUILD_REF_SLUG='feature-1'
export CI_BUILD_STAGE='test'
export CI_BUILD_TOKEN='[MASKED]'
export CI_COMMIT_BEFORE_SHA='59dd48fbff2995d9fcf982192f68800dacf042c8'
export CI_COMMIT_BRANCH='feature-1'
export CI_COMMIT_DESCRIPTION=''
export CI_COMMIT_MESSAGE='change gitlab-ci
'
export CI_COMMIT_REF_NAME='feature-1'
export CI_COMMIT_REF_PROTECTED='false'
export CI_COMMIT_REF_SLUG='feature-1'
export CI_COMMIT_SHA='e15e65bb132cebbe73e5f7a23b5f33a5ffd6b9b3'
export CI_COMMIT_SHORT_SHA='e15e65bb'
export CI_COMMIT_TITLE='change gitlab-ci'
export CI_CONCURRENT_ID='0'
export CI_CONCURRENT_PROJECT_ID='0'
export CI_CONFIG_PATH='.gitlab-ci.yml'
export CI_DEFAULT_BRANCH='dev'
export CI_DISPOSABLE_ENVIRONMENT='true'
export CI_JOB_ID='21'
export CI_JOB_JWT='[MASKED]'
export CI_JOB_NAME='test_variabl'
export CI_JOB_STAGE='test'
export CI_JOB_TOKEN='[MASKED]'
export CI_JOB_URL='https://gitlabtest.xiodi.cn/edu-java-demo/edu-java-spring/-/jobs/21'
export CI_NODE_TOTAL='1'
export CI_PAGES_DOMAIN='example.com'
export CI_PAGES_URL='http://edu-java-demo.example.com/edu-java-spring'
export CI_PIPELINE_ID='10'
export CI_PIPELINE_IID='10'
export CI_PIPELINE_SOURCE='push'
export CI_PIPELINE_URL='https://gitlabtest.xiodi.cn/edu-java-demo/edu-java-spring/pipelines/10'
export CI_PROJECT_DIR='/builds/edu-java-demo/edu-java-spring'
export CI_PROJECT_ID='1'
export CI_PROJECT_NAME='edu-java-spring'
export CI_PROJECT_NAMESPACE='edu-java-demo'
export CI_PROJECT_PATH='edu-java-demo/edu-java-spring'
export CI_PROJECT_PATH_SLUG='edu-java-demo-edu-java-spring'
export CI_PROJECT_REPOSITORY_LANGUAGES=''
export CI_PROJECT_TITLE='edu-java-spring'
export CI_PROJECT_URL='https://gitlabtest.xiodi.cn/edu-java-demo/edu-java-spring'
export CI_PROJECT_VISIBILITY='private'
export CI_REGISTRY_PASSWORD='[MASKED]'
export CI_REGISTRY_USER='gitlab-ci-token'
export CI_REPOSITORY_URL='https://gitlab-ci-token:[MASKED]@gitlabtest.xiodi.cn/edu-java-demo/edu-java-spring.git'
export CI_RUNNER_DESCRIPTION='host20133-docker'
export CI_RUNNER_EXECUTABLE_ARCH='linux/amd64'
export CI_RUNNER_ID='4'
export CI_RUNNER_REVISION='c553af1a'
export CI_RUNNER_SHORT_TOKEN='6FzQVSkX'
export CI_RUNNER_TAGS='host20133-docker, docker'
export CI_RUNNER_VERSION='12.10.0'
export CI_SERVER='yes'
export CI_SERVER_HOST='gitlabtest.xiodi.cn'
export CI_SERVER_NAME='GitLab'
export CI_SERVER_PORT='443'
export CI_SERVER_PROTOCOL='https'
export CI_SERVER_REVISION='869bc26464b'
export CI_SERVER_TLS_CA_FILE='/builds/edu-java-demo/edu-java-spring.tmp/CI_SERVER_TLS_CA_FILE'
export CI_SERVER_URL='https://gitlabtest.xiodi.cn'
export CI_SERVER_VERSION='12.10.0'
export CI_SERVER_VERSION_MAJOR='12'
export CI_SERVER_VERSION_MINOR='10'
export CI_SERVER_VERSION_PATCH='0'
export FF_CMD_DISABLE_DELAYED_ERROR_LEVEL_EXPANSION='false'
export FF_NETWORK_PER_BUILD='false'
export FF_USE_LEGACY_BUILDS_DIR_FOR_DOCKER='false'
export FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY='true'
export FF_USE_LEGACY_VOLUMES_MOUNTING_ORDER='false'
export GITLAB_CI='true'
export GITLAB_FEATURES=''
export GITLAB_USER_EMAIL='dev01@aishangwei.net'
export GITLAB_USER_ID='3'
export GITLAB_USER_LOGIN='dev01'
export GITLAB_USER_NAME='dev01'
export HARBOR_PW='xiodi.cn123'
export HARBOR_USER='harbor'
export HOME='/root'
export HOSTNAME='runner-6fzqvskx-project-1-concurrent-0'
export JOB='test variable'
export OLDPWD='/'
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
export PWD='/builds/edu-java-demo/edu-java-spring'
export REGISTRY='/edu-java-demo/edu-java-spring'
export SHLVL='2'
Running after_script
00:01
Saving cache
00:02
Uploading artifacts for successful job
00:02
Job succeeded