返回文章列表
2025-06-24

GitLab CI/CD 变量入门

极狐GitLab

在之前的文章中,我们探讨了 极狐GitLab CI/CD。现在,让我们深入 CI/CD 变量的世界,解锁它们的全部潜力。

 

什么是 CI/CD 变量?

 

CI/CD 变量是在 极狐GitLab 环境中不同级别(例如项目、组或实例)上定义的动态键值对。这些变量作为占位符,用于在 .极狐GitLab-ci.yml 文件中自定义管道、安全地存储敏感信息,并使 CI/CD 配置更易于维护。

 

为什么 CI/CD 变量很重要?

 

CI/CD 变量提供了诸多好处:

  • 灵活性:无需修改核心 CI/CD 脚本,即可轻松使管道适应不同的环境、配置或部署目标。
  • 安全性:安全地存储 API 密钥、密码和令牌等敏感信息,防止它们直接在代码中暴露。
  • 可维护性:通过将值集中在变量中,使 CI/CD 配置保持整洁和有序,从而更易于更新和修改。
  • 可重用性:一次定义变量,并在多个项目中重复使用,促进一致性并减少重复。

 

CI/CD 变量的范围:项目、组和实例

 

极狐GitLab 允许您定义不同范围的 CI/CD 变量,控制其可见性和可访问性:

 

项目级变量:这些变量特定于单个项目,非常适合存储项目特定设置,例如:

  • 部署 URL:为暂存和生产环境定义不同的 URL。
  • 数据库凭据:存储用于测试或部署的数据库连接详细信息。
  • 功能标志:在管道的不同阶段启用或禁用功能。
  • 示例:您有一个名为“MyWebApp”的项目,并希望存储生产部署 URL。您可以创建一个名为 DPROD_DEPLOY_URL 的项目级变量,其值为 https://mywebapp.com。

组级变量:这些变量在 极狐GitLab 组内的所有项目之间共享。它们对于多个项目通用的设置非常有用,例如:

  • 共享服务的 API 密钥:存储 AWS、Google Cloud 或 Docker Hub 等服务的 API 密钥,这些服务由组内的多个项目使用。
  • 全局配置设置:定义适用于组内所有项目的常见配置参数。
  • 示例:您有一个名为“Web Apps”的组,并希望存储 Docker Hub 的 API 密钥。您可以创建一个名为 DOCKER_HUB_API_KEY 的组级变量,并输入相应的 API 密钥值。

实例级变量:这些变量可用于 极狐GitLab 实例上的所有项目。它们通常用于适用于整个组织的全局设置,例如:

  • 默认运行器注册令牌:为新运行器的注册提供默认令牌。
  • 许可信息:存储 极狐GitLab 功能或第三方工具的许可证密钥。
  • 全局环境设置:定义应可供所有项目使用的环境变量。
  • 示例:您希望为您的 极狐GitLab 实例上的所有项目设置默认的 Docker 镜像。您可以创建一个名为 DEFAULT_DOCKER_IMAGE 的实例级变量,其值为 ubuntu:latest。

 

定义 CI/CD 变量

 

要定义 CI/CD 变量:

1、点击项目、组或实例的“Settings”(设置)>“CI/CD”按钮。 

2、转到“Variables”(变量)部分。 

3、点击“Add variable”(添加变量)。 

4、输入键(例如 API_KEY)和值。

5、(可选)对于敏感信息,选中“Protect variable”(保护变量)复选框。这确保变量仅对在受保护的分支或标签上运行的管道可用。 

6、(可选)选中“Mask variable”(掩码变量)复选框以在作业日志中隐藏变量的值,防止意外暴露。 

7、点击“Save variable”(保存变量)。

 

使用 CI/CD 变量

 

要在 .极狐GitLab-ci.yml 文件中使用 CI/CD 变量,只需在变量名前加上 $:

deploy_job:
 script:
 - echo "Deploying to production..."
 - curl -H "Authorization: Bearer $API_KEY" https://api.example.com/deploy

 

预定义的 CI/CD 变量

 

极狐GitLab 提供了一组预定义的 CI/CD 变量,您可以在管道中使用它们。这些变量提供了有关当前管道、作业、项目和更多信息。

一些常用的预定义变量包括:

  • $CI_COMMIT_SHA:当前管道的提交 SHA。
  • $CI_PROJECT_DIR:项目克隆到的目录。
  • $CI_PIPELINE_ID:当前管道的 ID。
  • $CI_ENVIRONMENT_NAME:正在部署到的环境名称(如果适用)。

 

最佳实践

  • 安全管理敏感变量‌:对API密钥、密码和其他敏感信息使用受保护变量和屏蔽变量。
  • 避免硬编码值‌:使用变量存储配置值,使流水线更灵活且易于维护。
  • 组织变量‌:采用描述性命名并将相关变量分组,优化管理效率。
  • 选择合适的作用域‌:根据变量的用途和可见性需求,选择正确的作用域(项目级、群组级或实例级)。

 

解锁变量潜能

 

CI/CD 变量是定制化和保护 极狐GitLab 流水线的强大工具。通过掌握变量特性并理解其作用域差异,您可构建更灵活、易维护且高效的工作流程。

 

     我们希望本文能帮助您充分运用 极狐GitLab 的强大功能,赋能开发项目。

极狐GitLab 一体化DevOps平台 专为中国用户研发,免费试用60天专业版高级功能
推荐阅读
售前咨询
联系电话
在线支持
预约演示