1. 变量使用
1.1 使用预定义的环境变量
//比如构建 Docker 镜像,定义缓存目录
variables:REGISTRY: $CI_REGISTRY/edu-java-demo/edu-java-springMAVEN_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-springtest_variabl:stage: testvariables:JOB: test variablescript:- 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 6FzQVSkXPreparing the "docker" executor00:00Using 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 environment00:03Running on runner-6fzqvskx-project-1-concurrent-0 via bcff4f9f7900...Getting source from Git repository00:02Fetching 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/1059dd48f..e15e65b feature-1 -> origin/feature-1Checking out e15e65bb as feature-1...Removing public/Removing vendor/Skipping Git submodules setupRestoring cache00:01Downloading artifacts00:02Running before_script and script00: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 $JOBtest variable$ echo "--------------"--------------$ exportexport 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_script00:01Saving cache00:02Uploading artifacts for successful job00:02Job succeeded
