用途
GitHub Actions 用于在 GitHub 仓库中实现 CI/CD 自动化。用户通过编写 YAML 工作流文件,定义在特定事件发生时自动执行的构建、测试、部署等任务。本技能整理了 GitHub Actions 的常用配置方式与典型工作流模式,供搭建自动化流水线时参考。
主要能力
工作流基础
工作流文件位于 .github/workflows/ 目录下,基本结构包含 name、on、jobs 等字段。示例中展示了在 push 和 pull_request 到 main 分支时触发,使用 actions/checkout@v4 检出代码、actions/setup-node@v4 配置 Node.js 20,然后执行 npm ci 与 npm test。
触发器
支持多种触发方式:
- 分支事件:
push可指定branches、paths、paths-ignore;pull_request可指定branches与types(如 opened、synchronize、reopened)。 - 定时触发:
schedule使用 cron 表达式,例如"0 6 * * 1"表示每周一 6 AM UTC。 - 手动触发:
workflow_dispatch支持定义输入项,如带选项的environment输入。 - 发布触发:
release的types: [published]。 - 被其他工作流调用:
workflow_call,可定义输入参数。
矩阵构建
通过 strategy.matrix 在多个操作系统与 Node 版本组合上运行作业,支持 exclude 排除特定组合、include 追加组合,并可设置 fail-fast: false 避免单个失败中断全部。
缓存
actions/setup-node@v4 与 actions/setup-python@v5 支持通过 cache 参数(如 npm、pip)自动缓存依赖。也可使用 actions/cache@v4 自定义缓存路径与 key,并配置 restore-keys。
密钥与环境变量
作业可指定 environment(如 production)以应用环境保护规则,通过 env 设置环境变量,使用 secrets.API_KEY、secrets.DATABASE_URL 引用密钥,secrets.GITHUB_TOKEN 为自动提供。
常见工作流模式
资料提供了 Node.js CI、Python CI、Docker 构建与推送、多环境部署等模板。Docker 示例使用 docker/login-action@v3 登录 ghcr.io,并用 docker/build-push-action@v5 推送镜像。部署示例通过 needs 让 production 作业依赖 staging 作业。
作业依赖与输出
作业可通过 outputs 暴露输出,使用 steps.<id>.outputs.<name> 引用,并通过 >> $GITHUB_OUTPUT 写入;下游作业用 needs.<job>.outputs.<name> 读取。
条件执行
步骤支持 if 条件,可基于 github.event_name、github.ref、提交信息内容,以及 success()、failure()、always() 等状态函数控制执行。
可复用工作流
通过 workflow_call 定义可复用工作流,支持 inputs 与 secrets;调用方使用 uses: ./.github/workflows/xxx.yml,可传 with 参数并使用 secrets: inherit。
使用方式
在仓库 .github/workflows/ 目录下创建 YAML 文件,按上述结构编写触发条件与作业步骤。资料末尾提到可参考 references/workflows.md 与 references/actions.md 获取工作流模板与常用 action。
适用场景
适用于在 GitHub 仓库中搭建自动化构建、测试、镜像推送与多环境部署流程,尤其适合需要跨平台矩阵测试、依赖缓存优化和密钥管理的项目。
限制
资料未提供该技能的安装方式、收费信息、平台限制或效果说明,相关内容暂未提供。