GitHub Actions 是 GitHub 内置的 CI/CD 与自动化平台,通过 YAML 工作流文件定义事件触发的自动化任务,与 GitHub 仓库深度集成,2019 年正式上线后迅速成为开源项目的主流 CI 选择。

| 类型 | CI/CD 与自动化平台 |
| 首发年份 | 2019 |
| 开发者 | GitHub(Microsoft) |
GitHub Actions 的核心概念:Workflow(工作流,一个 YAML 文件)→ Job(一个独立的虚拟机或容器)→ Step(一条命令或一个 Action)。触发器(on:)可以是 push、pull_request、schedule(cron)、workflow_dispatch(手动触发)或仓库事件(issue 被创建、PR 被合并等)。
Job 之间可以通过 needs 设置依赖关系,并行或串行执行。矩阵策略(strategy.matrix)一次定义多个 Job 变体,常用于同时在 Node 16/18/20 或 Ubuntu/macOS/Windows 上测试。[1]
GitHub Marketplace 上有超过 20,000 个可复用的 Action:actions/checkout(拉代码)、actions/setup-node、docker/build-push-action、aws-actions/configure-aws-credentials 等。用 uses: actions/checkout@v4 引用,版本锁定到 tag 或 SHA(锁 SHA 最安全,防止 tag 被移动导致供应链攻击)。
安全注意事项:fork 提 PR 触发的工作流默认无法读取 Secret,但 pull_request_target 事件可以,使用时需严格审查是否会在不可信代码上下文中使用 Secret。GitHub 托管的 Runner(免费层每月 2000 分钟)之外,也可以部署自托管 Runner在私有网络中运行,解决内网访问问题。

| 类型 | CI/CD 与自动化平台 |
| 首发年份 | 2019 |
| 开发者 | GitHub(Microsoft) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧