Agent Skills
返回列表
🔒

GitHub Actions 矩阵编排器

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/github-actions-matrix-orchestrator。

技能介绍

要解决的问题

GitHub Actions 原生的 matrix 策略是静态的:它在 workflow 解析阶段就被固定下来,无法依据仓库的实际状态变化。一旦矩阵维度来自动态数据——上游仓库的分支列表、Issue 标签、外部 API 返回的运行时信息——常见做法是自己拼一个巨大的 matrix JSON 塞进 jobs.<id>.strategy,或者干脆放弃矩阵,改用大量 if: 条件判断。前者脆弱且难以维护,后者牺牲了并行性与可读性。本技能针对的就是这条夹缝。

技能如何工作

  • 以 workflow_dispatch 作为入口,支持手动触发并通过 inputs 传入参数,让矩阵生成不绑定固定触发器
  • 通过 GitHub REST API 拉取仓库元数据(分支、标签、releases 等),把远程状态转换为矩阵维度
  • 借助 actions/github-script 在运行时拼接并注入 strategy.matrix,实现条件化任务包含——不满足条件的组合在 job 级被剔除,而不是靠 if: 在运行时空转浪费 runner 时间
  • 对跨账号 AWS 部署场景,使用 OIDC token federation(workflow 声明 id-token: write,AWS 侧配置 trust policy)替代长期 AWS 凭证,矩阵内每个 job 各自换取临时凭证

关键步骤:定义 dispatch 输入 → 调 REST API 归一化数据 → 生成矩阵组合 → 用 github-script 注入 strategy → job 按条件执行。

适用边界与注意点

  • 需要启用 Actions 的仓库,且 Token 具备调 REST API 的相应权限
  • OIDC 部分要求 AWS 侧 IAM role 已配置对应的 trust policy,否则临时凭证换取会失败
  • 动态矩阵会延长 workflow 解析阶段耗时,日志中多一次 API 往返
  • 矩阵维度数据源变化频繁时,需要考虑缓存与失效策略,避免每次触发都全量拉取
  • 官方 Actions 文档是理解这些前置概念的最佳入口:https://docs.github.com/en/actions

使用场景

  • 仓库分支频繁新增,CI 不想硬编码分支名,需要在 workflow 运行时按远端分支列表动态生成测试矩阵。
  • 多模块项目在合并前需要按 Issue 标签手动触发,只跑与当前变更相关的子集 job,其余跳过。
  • 组织有多个 AWS 账号,CI 需在矩阵里给每个 job 换到对应账号部署,且只用 OIDC 短期凭证不用静态密钥。
  • 上游多个依赖仓库的 release 列表经常变化,CI 需要在运行时拉取并适配要构建的版本组合,不能写死在 workflow 里。

适合人员

  • 维护多分支 CI 流水线的后端或前端工程师,不想每次新增分支都改一遍矩阵配置。
  • 负责多账号 AWS 部署的 DevOps 工程师,需要用 OIDC 换临时凭证并按条件挑选 job。
  • 编写内部开发平台工具链的平台工程师,想把动态数据源接入 GitHub Actions 的矩阵生成逻辑。
  • 维护大型 monorepo 构建流程的构建负责人,需要在合并前手动触发并只跑与变更相关的子集。