SuperAPI AI 工具集

github-actions

部署与运维

查看项目

更新于 10-16 09:47

技能介绍

用途:GitHub Actions 是 GitHub 仓库内的 CI/CD 平台,用 .github/workflows/ 下的 YAML 文件定义由推送、拉取请求、定时或手动等事件触发的工作流,每个工作流包含一个或多个在 GitHub 托管或自托管 runner 上运行的作业。本技能面向工作流的编写与维护。

主要能力:支持 push / pull_request / schedule / workflow_dispatch 等触发器;作业依赖(needs)、条件执行(if)、矩阵策略(strategy.matrix);依赖缓存与包管理器内置缓存(如 actions/cache@v5、actions/setup-node@v6 配 cache);制品上传下载(actions/upload-artifact@v4、download-artifact@v4);可复用工作流(workflow_call)与复合动作(using: composite);并发控制;环境/仓库/组织级密钥;OIDC 短时令牌;步骤输出(写入 $GITHUB_OUTPUT);服务容器;超时(timeout-minutes);构建来源证明(attest-build-provenance)。

使用方式:以 YAML 声明式编写工作流,按事件触发运行;用表达式与上下文(github、env、secrets、inputs、matrix、steps、needs、runner、vars)在步骤与作业间传递数据。

适用场景:自动化测试、持续部署、发布自动化、定时任务、多平台构建、依赖更新、容器发布、代码质量检查、安全扫描。

限制与注意事项:不适合长时间运行的服务、超出 runner 限制的重计算任务(作业默认 6 小时超时)、需要跨次运行保持持久状态的任务,以及实时事件处理。常见错误包括:使用过时主要版本,建议固定到当前主版本或提交 SHA;自定义令牌或 OIDC 时 checkout 未设 persist-credentials: false;工作流级权限过宽,应在工作流级设 permissions: {} 并按作业授予;缓存键未含依赖文件哈希;密钥不能直接用于 if 条件;谨慎使用 pull_request_target;用并发加 cancel-in-progress: true 取消过期运行;第三方动作固定到完整提交 SHA;避免在 run 块中直接插值用户输入,应经 env 传递。