SuperAPI AI 工具集

github-actions-templates

部署与运维

查看项目

更新于 10-16 07:30

技能介绍

用途

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 传入参数。

限制

资料未说明该技能的具体安装命令、收费方式、价格、平台依赖或实际运行效果,这些信息暂未提供。