🚀 从入门到实践

一个关于CI/CD流程优化的交互式学习指南

欢迎来到CI/CD汉堡工厂!

你好!CI/CD(持续集成/持续部署)听起来可能很复杂,但它的核心思想很简单:将代码的构建、测试和部署过程自动化,让它变得更快速、更可靠。

为了让你更好地理解,我们将把整个流程想象成**开一家汉堡店**。在这个交互式指南中,你将看到一个手忙脚乱的“单人汉堡摊”如何升级为高效、安全的“现代化汉堡工厂”。让我们开始吧!

🔄 流程对比:从作坊到工厂

这里直观地展示了两种工作流程的差异。旧流程所有步骤都挤在一起,像一个人的小作坊,一步出错就全盘皆输。新流程则将“构建”和“部署”分离,像一条分工明确的流水线,更稳定、更可靠。**点击下面的步骤卡片,查看详情!**

之前:手忙脚乱的单人汉堡摊

1. Checkout代码 (个人令牌)
2. 安装 Python
3. 配置 Git 用户
4. 运行生成脚本
5. 使用第三方Action部署

现在:标准化的汉堡工厂

Job 1: Build (构建)

1. Checkout代码
2. 安装 Python
3. 运行生成脚本
4. 配置Pages设置
5. 上传Artifact产物
⬇️

Job 2: Deploy (部署)

1. 下载Artifact产物
2. 使用官方Action部署

🌟 核心优势:为什么新流程更好?

将流程分离不仅仅是结构上的变化,它在安全性、稳定性和维护性上带来了质的飞跃。下面我们通过图表和卡片来分解这些核心优势。

速度 vs. 稳定性权衡

新流程虽然在时间上略有增加(用于Artifact的上传/下载),但换来的是巨大的**安全性和稳定性**提升,这是一个非常值得的投入。

认证方式

个人令牌 ➡️ 内置权限

✅ **更安全**:无需管理密钥,权限最小化。

部署方式

第三方 ➡️ 官方Action

✅ **更可靠**:官方维护,集成度更高。

Job结构

单一Job ➡️ 双Job分离

✅ **更清晰**:职责解耦,易于排错。

稳定性

易出错 ➡️ 更稳定

✅ **更健壮**:构建失败不会触发部署。

📚 关键概念 (流水线背后的黑科技)

新的流水线之所以高效安全,离不开这些GitHub Actions的核心概念。点击下面的卡片,了解它们是如何工作的。

Permissions (权限系统)

这就像给每个员工一张权限明确的门禁卡。我们不再使用“万能钥匙”(个人令牌),而是为流程分配临时的、权限受限的`GITHUB_TOKEN`,并明确声明所需权限,遵循“最小权限原则”。

permissions:
  contents: read
  pages: write
  id-token: write

Concurrency (并发控制)

这就像在工厂的“派送出口”设置一个交通管理员,确保同一时间只有一个部署任务在运行,防止版本错乱。

concurrency:
  group: "pages"
  cancel-in-progress: false

Jobs 依赖关系 (needs)

这是流水线上最直观的规则:“必须先做完汉堡,才能去打包”。它定义了Job之间的执行顺序,如果`build`失败,`deploy`会自动跳过。

deploy:
  needs: build

Environment (部署环境)

这就像为“派送”任务设立一个专门的、受监控的“发货平台”。它可以让你跟踪部署历史,设置审批规则,并方便地获取部署后的网站URL。

environment:
  name: github-pages
  url: ${{ steps.deployment.outputs.page_url }}

📖 你的学习路径

恭喜你!你已经理解了这个现代CI/CD流程的核心思想。接下来,你可以按照这个路径继续深入学习,成为真正的自动化专家!

1️⃣

GitHub Actions 基础

学习YAML语法、jobs, steps, actions等核心概念。

2️⃣

GitHub Pages 部署

理解静态站点、Artifacts和Environments。

3️⃣

权限和安全

研究Token区别和最小权限原则。

4️⃣

CI/CD 概念

思考如何设计更复杂的自动化Pipeline。