SuperAPI AI 工具集

github-actions

部署与运维

查看项目

更新于 10-15 10:19

技能介绍

用途

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 仓库中搭建自动化构建、测试、镜像推送与多环境部署流程,尤其适合需要跨平台矩阵测试、依赖缓存优化和密钥管理的项目。

限制

资料未提供该技能的安装方式、收费信息、平台限制或效果说明,相关内容暂未提供。