... | ... | @@ -7,7 +7,7 @@ |
|
|
- [Predefined environment variables](#predefined-environment-variables)
|
|
|
- [Use predefined environment variables](#use-predefined-environment-variables)
|
|
|
- [Custom environment variables](#custom-environment-variables)
|
|
|
- [Create a custom variable in `.gitlab-ci.yml`](#create-a-custom-variable-in-gitlab-ciyml)
|
|
|
- [Create a custom variable in `.codechina-ci.yml`](#create-a-custom-variable-in-gitlab-ciyml)
|
|
|
- [Create a custom variable in the UI](#create-a-custom-variable-in-the-ui)
|
|
|
- [Custom environment variables of type Variable](#custom-environment-variables-of-type-variable)
|
|
|
- [Custom environment variables of type File](#custom-environment-variables-of-type-file)
|
... | ... | @@ -20,7 +20,7 @@ |
|
|
- [PowerShell](#powershell)
|
|
|
- [Windows Batch](#windows-batch)
|
|
|
- [List all environment variables](#list-all-environment-variables)
|
|
|
- [`.gitlab-ci.yml` defined variables](#gitlab-ciyml-defined-variables)
|
|
|
- [`.codechina-ci.yml` defined variables](#gitlab-ciyml-defined-variables)
|
|
|
- [Group-level environment variables](#group-level-environment-variables)
|
|
|
- [Instance-level CI/CD environment variables](#instance-level-cicd-environment-variables)
|
|
|
- [Enable or disable UI interface for instance-level CI/CD variables](#enable-or-disable-ui-interface-for-instance-level-cicd-variables)
|
... | ... | @@ -58,7 +58,7 @@ GitLab CI / CD 具有一组[默认的预定义变量](predefined_variables.html) |
|
|
|
|
|
GitLab 为 Runner 的本地环境提供了预定义的环境变量.
|
|
|
|
|
|
GitLab 读取`.gitlab-ci.yml`文件,并将信息发送到 Runner,在此处公开变量. 然后,运行程序运行脚本命令.
|
|
|
GitLab 读取`.codechina-ci.yml`文件,并将信息发送到 Runner,在此处公开变量. 然后,运行程序运行脚本命令.
|
|
|
|
|
|
### Use predefined environment variables[](#use-predefined-environment-variables "Permalink")
|
|
|
|
... | ... | @@ -66,7 +66,7 @@ GitLab 读取`.gitlab-ci.yml`文件,并将信息发送到 Runner,在此处 |
|
|
|
|
|
本示例说明如何使用预定义变量`CI_JOB_STAGE`输出作业的阶段.
|
|
|
|
|
|
在您的`.gitlab-ci.yml`文件中,从脚本中调用变量. 确保使用正确的[语法](#syntax-of-environment-variables-in-job-scripts) .
|
|
|
在您的`.codechina-ci.yml`文件中,从脚本中调用变量. 确保使用正确的[语法](#syntax-of-environment-variables-in-job-scripts) .
|
|
|
|
|
|
```
|
|
|
test_variable:
|
... | ... | @@ -92,15 +92,15 @@ pages: |
|
|
|
|
|
## Custom environment variables[](#custom-environment-variables "Permalink")
|
|
|
|
|
|
当需要特定的自定义环境变量时,可以[在 UI](#create-a-custom-variable-in-the-ui)中[,API](../../api/project_level_variables.html)中或直接[在`.gitlab-ci.yml`文件中进行设置](#create-a-custom-variable-in-gitlab-ciyml) .
|
|
|
当需要特定的自定义环境变量时,可以[在 UI](#create-a-custom-variable-in-the-ui)中[,API](../../api/project_level_variables.html)中或直接[在`.codechina-ci.yml`文件中进行设置](#create-a-custom-variable-in-gitlab-ciyml) .
|
|
|
|
|
|
每当管道运行时,Runner 就会使用这些变量. 您还[可以手动覆盖特定管道的变量值](../pipelines/index.html#specifying-variables-when-running-manual-jobs) .
|
|
|
|
|
|
变量有两种类型: **Variable**和**File** . 您无法在`.gitlab-ci.yml`文件中设置类型,但可以在 UI 和 API 中进行设置.
|
|
|
变量有两种类型: **Variable**和**File** . 您无法在`.codechina-ci.yml`文件中设置类型,但可以在 UI 和 API 中进行设置.
|
|
|
|
|
|
### Create a custom variable in `.gitlab-ci.yml`[](#create-a-custom-variable-in-gitlab-ciyml "Permalink")
|
|
|
### Create a custom variable in `.codechina-ci.yml`[](#create-a-custom-variable-in-gitlab-ciyml "Permalink")
|
|
|
|
|
|
要创建自定义`env_var`在可变[`.gitlab-ci.yml`](../yaml/README.html#variables)文件中,定义下的变量/值对`variables` :
|
|
|
要创建自定义`env_var`在可变[`.codechina-ci.yml`](../yaml/README.html#variables)文件中,定义下的变量/值对`variables` :
|
|
|
|
|
|
```
|
|
|
variables:
|
... | ... | @@ -114,7 +114,7 @@ variables: |
|
|
- echo "$TEST"
|
|
|
```
|
|
|
|
|
|
有关更多详细信息,请参见[`.gitlab-ci.yml`定义的变量](#gitlab-ciyml-defined-variables) .
|
|
|
有关更多详细信息,请参见[`.codechina-ci.yml`定义的变量](#gitlab-ciyml-defined-variables) .
|
|
|
|
|
|
### Create a custom variable in the UI[](#create-a-custom-variable-in-the-ui "Permalink")
|
|
|
|
... | ... | @@ -132,7 +132,7 @@ variables: |
|
|
|
|
|
创建变量后,您可以通过点击 **编辑**按钮.
|
|
|
|
|
|
设置变量后,请从`.gitlab-ci.yml`文件中调用它:
|
|
|
设置变量后,请从`.codechina-ci.yml`文件中调用它:
|
|
|
|
|
|
```
|
|
|
test_variable:
|
... | ... | @@ -178,7 +178,7 @@ kubectl config set-cluster e2e --server="$KUBE_URL" --certificate-authority="$(p |
|
|
* 类型为**Variable** : `KUBE_URL` **变量** ,其值为`https://example.com` .
|
|
|
* 类型为**File** : `KUBE_CA_PEM`变量,其值为证书.
|
|
|
|
|
|
您可以从`.gitlab-ci.yml`调用它们,如下所示:
|
|
|
您可以从`.codechina-ci.yml`调用它们,如下所示:
|
|
|
|
|
|
```
|
|
|
kubectl config set-cluster e2e --server="$KUBE_URL" --certificate-authority="$KUBE_CA_PEM"
|
... | ... | @@ -348,11 +348,11 @@ export GITLAB_USER_EMAIL="user@example.com" |
|
|
export GITLAB_USER_ID="42"
|
|
|
```
|
|
|
|
|
|
## `.gitlab-ci.yml` defined variables[](#gitlab-ciyml-defined-variables "Permalink")
|
|
|
## `.codechina-ci.yml` defined variables[](#gitlab-ciyml-defined-variables "Permalink")
|
|
|
|
|
|
**注意:**此功能需要 GitLab Runner 0.5.0 或更高版本以及 GitLab 7.14 或更高版本.
|
|
|
|
|
|
您可以将在构建环境中设置的变量添加到`.gitlab-ci.yml` . 这些变量保存在存储库中,它们旨在存储非敏感项目配置,例如`RAILS_ENV`或`DATABASE_URL` .
|
|
|
您可以将在构建环境中设置的变量添加到`.codechina-ci.yml` . 这些变量保存在存储库中,它们旨在存储非敏感项目配置,例如`RAILS_ENV`或`DATABASE_URL` .
|
|
|
|
|
|
例如,如果将变量全局设置为下方(而不是在作业内部),它将在所有已执行的命令和脚本中使用:
|
|
|
|
... | ... | @@ -384,7 +384,7 @@ script: |
|
|
|
|
|
Introduced in GitLab 9.4.
|
|
|
|
|
|
您可以定义在管道环境中设置的每个项目或每个组的变量. 组级变量存储在存储库之外(不在`.gitlab-ci.yml` ),并安全地传递到 GitLab Runner,这使它们在管道运行期间可用. 对于**不**使用外部密钥存储或使用 GitLab [与 HashiCorp Vault 集成的](../examples/authenticating-with-hashicorp-vault/index.html)高级用户,我们建议使用组环境变量来存储密码,SSH 密钥和凭据之类的机密.
|
|
|
您可以定义在管道环境中设置的每个项目或每个组的变量. 组级变量存储在存储库之外(不在`.codechina-ci.yml` ),并安全地传递到 GitLab Runner,这使它们在管道运行期间可用. 对于**不**使用外部密钥存储或使用 GitLab [与 HashiCorp Vault 集成的](../examples/authenticating-with-hashicorp-vault/index.html)高级用户,我们建议使用组环境变量来存储密码,SSH 密钥和凭据之类的机密.
|
|
|
|
|
|
组级变量可以通过以下方式添加:
|
|
|
|
... | ... | @@ -505,9 +505,9 @@ deploy: |
|
|
例如,如果您定义:
|
|
|
|
|
|
* `API_TOKEN=secure`作为项目变量.
|
|
|
* 您的`.gitlab-ci.yml` `API_TOKEN=yaml` .
|
|
|
* 您的`.codechina-ci.yml` `API_TOKEN=yaml` .
|
|
|
|
|
|
`API_TOKEN`将采用`secure`值,因为项目变量优先于`.gitlab-ci.yml`定义`.gitlab-ci.yml` .
|
|
|
`API_TOKEN`将采用`secure`值,因为项目变量优先于`.codechina-ci.yml`定义`.codechina-ci.yml` .
|
|
|
|
|
|
## Unsupported variables[](#unsupported-variables "Permalink")
|
|
|
|
... | ... | @@ -568,7 +568,7 @@ Variable names are limited by the underlying shell used to execute scripts (see |
|
|
|
|
|
使用变量表达式来限制将更改推送到 GitLab 之后在管道中创建的作业.
|
|
|
|
|
|
在`.gitlab-ci.yml` ,变量表达式可同时用于以下两种情况:
|
|
|
在`.codechina-ci.yml` ,变量表达式可同时用于以下两种情况:
|
|
|
|
|
|
* [`rules`](../yaml/README.html#rules) ,这是推荐的方法,以及
|
|
|
* [`only`和`except`](../yaml/README.html#onlyexcept-basic) ,它们是不推荐使用的候选对象.
|
... | ... | @@ -704,7 +704,7 @@ testvariable: |
|
|
|
|
|
默认情况下,GitLab Runner 隐藏处理作业时所执行操作的大多数细节. 此行为使作业日志简短,并防止机密信息泄露到日志中,除非您的脚本将其写入屏幕.
|
|
|
|
|
|
如果一项工作没有按预期进行,则可能使问题难以调查. 在这种情况下,您可以在`.gitlab-ci.yml`启用调试跟踪. 在 GitLab Runner v1.7 +上可用,此功能启用外壳程序的执行日志,从而产生详细的作业日志,其中列出了所有已运行的命令,已设置的变量等.
|
|
|
如果一项工作没有按预期进行,则可能使问题难以调查. 在这种情况下,您可以在`.codechina-ci.yml`启用调试跟踪. 在 GitLab Runner v1.7 +上可用,此功能启用外壳程序的执行日志,从而产生详细的作业日志,其中列出了所有已运行的命令,已设置的变量等.
|
|
|
|
|
|
在启用此功能之前,您应确保作业[仅对团队成员](../../user/permissions.html#project-features)可见. 您还应该[清除](../pipelines/index.html#view-jobs-in-a-pipeline)所有生成的作业日志,然后才能再次显示它们.
|
|
|
|
... | ... | @@ -830,8 +830,8 @@ if [[ -d "/builds/gitlab-examples/ci-debug-trace/.git" ]]; then echo $'\''\x1b[3 |
|
|
++ CI_PIPELINE_IID=123
|
|
|
++ export CI_PIPELINE_SOURCE=web
|
|
|
++ CI_PIPELINE_SOURCE=web
|
|
|
++ export CI_CONFIG_PATH=.gitlab-ci.yml
|
|
|
++ CI_CONFIG_PATH=.gitlab-ci.yml
|
|
|
++ export CI_CONFIG_PATH=.codechina-ci.yml
|
|
|
++ CI_CONFIG_PATH=.codechina-ci.yml
|
|
|
++ export CI_COMMIT_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
|
|
|
++ CI_COMMIT_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
|
|
|
++ export CI_COMMIT_SHORT_SHA=dd648b2e
|
... | ... | |