从代码提交到生产部署全自动化——用 GitHub Actions 构建现代软件交付流水线
在没有 CI/CD 的时代,软件发布是一场噩梦:手动在服务器上执行部署脚本,忘记跑测试,生产环境与开发环境不一致,"在我机器上是好的"成为最著名的程序员借口。一个功能从合并代码到上线,可能需要数天甚至数周。
GitHub Actions 彻底改变了这一切。它是 GitHub 内置的 CI/CD 平台,通过 YAML 配置文件描述自动化流程,每次 git push 就能自动触发:代码编译、单元测试、集成测试、安全扫描、容器构建、部署到云平台。整个过程无需人工干预,从代码提交到上线可以缩短到分钟级别。
本教程覆盖 GitHub Actions 的完整生态,包括 Workflow 语法、Matrix 矩阵构建、自定义 Action 开发、OIDC 无密钥云部署、Monorepo 策略等,是现代 DevOps 工程师的必备技能。
GitHub Actions 让 DevOps 流水线触手可及
push、PR、定时任务、手动触发——任何 GitHub 事件都能触发工作流。
多个 Job 并行运行,依赖关系灵活配置,大幅缩短流水线总时长。
一次配置,自动在多个 OS、多个语言版本上并行运行测试。
加密存储 API 密钥、证书等敏感信息,安全注入到工作流中。
依赖缓存策略大幅减少重复下载,将构建时间从分钟压缩到秒级。
无需长期密钥,通过 OpenID Connect 安全部署到 AWS/GCP/Azure。
从 CI/CD 基础到企业级自动化,系统构建 DevOps 能力
CI/CD 发展史,持续集成/交付/部署的区别,GitHub Actions 核心概念,与 Jenkins/CircleCI 对比。
.github/workflows 目录,YAML 语法,on 触发器,jobs 结构,steps 的 run 和 uses 写法。
env 层级(全局/job/step),secrets.XXX 安全使用,context 对象,表达式语法 ${{ }}。
strategy.matrix 多版本多 OS 测试,include/exclude 精细控制,fail-fast 与 max-parallel。
action.yml 元数据,JavaScript Action,Docker Action,composite Action,发布到 Marketplace。
actions/cache 原理,cache key 设计,upload-artifact/download-artifact,retention 策略。
部署到 AWS/GCP/Azure,Docker Hub/GHCR 镜像推送,Kubernetes 滚动更新。
jest/pytest/go test 集成,覆盖率上传,E2E Playwright,测试报告注释 PR。
permissions 字段,GITHUB_TOKEN 最小权限,OIDC 无密钥云部署,CodeQL,Trivy 漏洞扫描。
workflow_call 可复用工作流,组织级共享 Action,Monorepo 路径过滤,部署环境保护规则。