中级第 4 / 11 节30 分钟 · 实操
变量和密钥
GitLab CI 课程的一部分
一条不管谁推送、推到哪个分支都表现得一模一样的流水线, 分不清预发布环境和生产环境, 也分不清一把真正的部署密钥和一个占位符。任何正经的流水线都需要在运行的那一刻知道一些事情: 自己在构建哪个提交, 是哪个分支触发的, 以及怎么向数据库或者云 API 完成认证, 而又不能把那个密码打印到某个地方, 让同事, 或者某个对仓库有读权限的陌生人, 事后往回翻就能看到。把密码直接写进 .gitlab-ci.yml 的某行脚本里, 做五分钟的演示没问题, 但一旦你意识到这个文件是提交进 Git 的, 它就失效了: 密码从此成了项目永久历史的一部分, 任何能克隆仓库的人都看得到, 永远如此, 哪怕你下一个提交就把那行删掉。本课讲的就是这样一个值到底该放在哪里, 以及 GitLab 为什么故意把其中一些地方和你的代码隔开。
想象一张印好的表格, 上面有一条填空线: "环境: ______"。表格本身, 也就是 .gitlab-ci.yml, 对每个运行这条流水线的人都是一样的, 但填进那条线里的值随情况而变。在 GitLab CI 里, 变量就是这样一个带标签的槽位: 一个名称, 装着一段文本, 任何作业的 script: 行都可以在名称前面加个美元符号把它读回来, 和普通的终端外壳脚本读变量是一回事。 ...
想在真实环境里学习 GitLab CI 变量和密钥 吗?
点击下方,立即获得一台预装 GitLab CI 的 Linux 主机,跟懂你代码的 AI 导师一起完成 变量和密钥 的实操练习。
开始这节课变量和密钥你将学到什么
- Variables block
- Predefined CI variables
- CI_COMMIT_SHA
- CI_PROJECT_DIR
- Masked variables
- Protected variables
- .env files vs CI variables
用你的语言阅读本课
本课程的所有课时
11 节探索其他课程
Python
19 节 · 9.3小时
Go
20 节 · 12.3小时
React
17 节 · 10.2小时
Linux
17 节 · 8.5小时
Docker
13 节 · 6.6小时
Git
13 节 · 5.9小时
Kubernetes
14 节 · 8小时
Ansible
12 节 · 6.1小时
Bash
12 节 · 5.7小时
Helm
10 节 · 5.4小时
Jenkins
11 节 · 5.3小时
PostgreSQL
14 节 · 7.6小时
MySQL
13 节 · 6.8小时
Web
14 节 · 5.9小时
TypeScript
18 节 · 7.7小时
Vibe Coding
12 节 · 5.8小时
Prompt Engineering
11 节 · 6.2小时
Vibe 编程:基础
12 节 · 4.5小时
Vibe 编程:从原型到生产
12 节 · 5.5小时
Vibe 编程:多智能体工程
12 节 · 5.3小时
Vibe 编程:高级工程
12 节 · 7.3小时
