用途
GitHub Actions Templates 用于创建高效、安全的 GitHub Actions 工作流,实现跨多种技术栈的持续集成与持续部署。其定位是为测试、构建和部署应用提供“生产就绪(production-ready)”的工作流模式。
主要能力
- 自动化测试与部署
- 构建 Docker 镜像并推送到镜像仓库
- 部署到 Kubernetes 集群
- 运行安全扫描
- 实现针对多环境的矩阵构建
常见工作流模式
资料中给出以下示例模式:
- Pattern 1:Test Workflow —— 在 push(main、develop)与 pull_request(main)时触发,使用 matrix 覆盖 node-version 18.x 与 20.x,步骤包含 checkout、setup-node(带 npm 缓存)、npm ci、运行 lint、运行测试、上传覆盖率到 Codecov。
- Pattern 2:Build and Push Docker Image —— 在 push(main 分支与 v* 标签)时触发,配置 REGISTRY 为 ghcr.io,包含登录容器仓库、提取元数据(docker/metadata-action,tags 含 branch、pr、semver 两种模式)、构建并推送(docker/build-push-action,使用 gha 缓存)。
- Pattern 3:Deploy to Kubernetes —— 在 push(main)时触发,包含配置 AWS 凭证、更新 kubeconfig(aws eks update-kubeconfig)、kubectl apply 并查看 rollout 状态、验证部署。
- Pattern 4:Matrix Build —— 在 push 与 pull_request 时触发,matrix 覆盖 os(ubuntu、macos、windows)与 python-version(3.9、3.10、3.11、3.12),步骤包含 setup-python、安装依赖、运行 pytest。
资料还包含:
- 可复用工作流(Reusable Workflows)示例及其调用方式,使用 workflow_call 定义 inputs 与 secrets。
- 安全扫描(Security Scanning)示例,使用 Trivy 漏洞扫描器(aquasecurity/trivy-action)并上传 SARIF 到 GitHub Security(github/codeql-action/upload-sarif),以及使用 Snyk 安全扫描(snyk/actions/node)。
- 带审批的部署(Deployment with Approvals)示例,使用 environment(name: production)并在成功后通过 slackapi/slack-github-action 发送 Slack 通知。
工作流最佳实践
资料列出的最佳实践包括:
- 使用具体的 action 版本(例如 @v4,而非 @latest)
- 缓存依赖以加速构建
- 对敏感数据使用 secrets
- 在 PR 上实施状态检查
- 使用矩阵构建进行多版本测试
- 设置合适的权限
- 对通用模式使用可复用工作流
- 为生产环境实施审批门禁
- 为失败添加通知步骤
- 对敏感工作负载使用自托管 runner
适用场景
- 需要为应用搭建 CI/CD 并自动化测试与部署
- 需要构建 Docker 镜像并推送到镜像仓库
- 需要部署到 Kubernetes 集群
- 需要运行安全扫描
- 需要针对多环境、多版本实施矩阵构建
使用方式
资料以可直接参考的 YAML 工作流示例呈现,涵盖触发条件(on)、作业(jobs)、运行环境(runs-on)、策略矩阵(strategy.matrix)、步骤(steps)以及可复用工作流的定义与调用。可复用工作流通过 workflow_call 暴露 inputs 与 secrets,并在调用方通过 uses 与 with/secrets 传入参数。
限制
资料未说明该技能的具体安装命令、收费方式、价格、平台依赖或实际运行效果,这些信息暂未提供。