gitlabci系统变量
时间: 2023-11-11 08:57:27 浏览: 64
GitLab CI/CD 提供了一些系统变量,可以在构建和部署过程中使用。下面是一些常用的系统变量:
1. `CI_COMMIT_REF_NAME`: 当前提交所在的分支或标签的名称。
2. `CI_COMMIT_SHORT_SHA`: 当前提交的短 SHA。
3. `CI_COMMIT_SHA`: 当前提交的完整 SHA。
4. `CI_COMMIT_MESSAGE`: 当前提交的提交信息。
5. `CI_PROJECT_ID`: GitLab 项目的唯一标识符。
6. `CI_PROJECT_NAME`: GitLab 项目的名称。
7. `CI_PROJECT_PATH`: GitLab 项目的路径。
8. `CI_PIPELINE_ID`: 当前流水线的唯一标识符。
9. `CI_JOB_ID`: 当前作业的唯一标识符。
10. `CI_JOB_NAME`: 当前作业的名称。
11. `CI_REGISTRY`: GitLab 运行容器镜像的注册表地址。
12. `CI_RUNNER_ID`: 执行当前作业的 Runner 的唯一标识符。
这些系统变量可以在 `.gitlab-ci.yml` 文件中使用,例如:
```yaml
build:
script:
- echo "Running build job on branch $CI_COMMIT_REF_NAME"
```
相关问题
gitlabci预定义变量
GitLab CI/CD 提供了一些预定义的变量,可以在 CI/CD 配置文件中使用。这些变量包括:
1. CI_COMMIT_REF_NAME:当前提交的分支或标签的名称。
2. CI_COMMIT_REF_SLUG:将分支或标签名称转换为有效的 URL slug。
3. CI_COMMIT_SHA:当前提交的 SHA 值。
4. CI_COMMIT_SHORT_SHA:当前提交的短 SHA 值。
5. CI_COMMIT_MESSAGE:当前提交的提交信息。
6. CI_COMMIT_TITLE:当前提交的标题。
7. CI_COMMIT_DESCRIPTION:当前提交的描述。
8. CI_PIPELINE_ID:当前管道的唯一标识符。
9. CI_PROJECT_ID:当前项目的唯一标识符。
10. CI_PROJECT_NAME:当前项目的名称。
11. CI_PROJECT_PATH:当前项目的路径。
12. CI_PROJECT_NAMESPACE:当前项目的命名空间。
这些预定义变量可以在 CI/CD 配置文件(如 `.gitlab-ci.yml`)中使用,以帮助您自定义和配置您的流水线。
terraform中如何使用gitlab的全局变量
使用GitLab的全局变量,在Terraform中可以使用以下方式:
1. 通过GitLab API获取全局变量并在Terraform中使用。
可以使用GitLab API获取全局变量,然后将其传递给Terraform,例如:
```bash
export GITLAB_API_PRIVATE_TOKEN=<your_gitlab_token>
export GITLAB_PROJECT_ID=<your_gitlab_project_id>
# Get the variable value
export MY_VARIABLE="$(curl --silent --header "PRIVATE-TOKEN: ${GITLAB_API_PRIVATE_TOKEN}" "https://gitlab.com/api/v4/projects/${GITLAB_PROJECT_ID}/variables/MY_VARIABLE" | jq -r '.value')"
# Use the variable in your Terraform code
terraform plan -var "my_variable=${MY_VARIABLE}"
```
2. 通过Terraform provider for GitLab获取全局变量并在Terraform中使用。
可以使用Terraform provider for GitLab获取全局变量,例如:
```terraform
provider "gitlab" {
token = var.gitlab_token
}
data "gitlab_variable" "my_variable" {
name = "MY_VARIABLE"
}
resource "null_resource" "example" {
depends_on = [data.gitlab_variable.my_variable]
provisioner "local-exec" {
command = "echo ${data.gitlab_variable.my_variable.value}"
}
}
```
在这个例子中,我们使用了Terraform provider for GitLab来获取名为`MY_VARIABLE`的全局变量,并将其传递给了`null_resource`资源的`local-exec` provisioner,以便在本地执行命令时使用。