用途
该技能用于定义基于 GitHub Actions 的 CI/CD 流水线最佳实践,目标是通过自动化完成测试、安全扫描与部署。它给出工作流应包含的环节、安全配置要求,以及一个可直接参考的完整示例工作流。
主要能力
按技能规则,工作流必须包含以下环节:
- 代码质量检查(linting、格式化)
- 安全扫描(CodeQL、Dependabot、ZAP)
- 性能审计(Lighthouse)
- 构建与压缩(minification)
- 部署(生产环境需审批)
示例工作流包含四个作业:
validate:检出代码后执行 HTML 校验(npm run validate:html)与 CSS lint(npm run lint:css)。security-scan:检出代码后初始化并执行 CodeQL 分析,再运行 ZAP Baseline Scan,目标为https://www.hack23.com。lighthouse:使用treosh/lighthouse-ci-action@v10对指定 URL 运行 Lighthouse,读取budgetPath: ./budget.json并上传产物。deploy:依赖前三个作业,仅在main分支触发;配置 AWS 凭证后同步到 S3(aws s3 sync . s3://... --delete),再对 CloudFront 执行缓存失效(aws cloudfront create-invalidation --distribution-id ... --paths "/*")。
工作流触发条件为推送到 main 分支以及针对 main 的拉取请求,并声明了 permissions:contents: read、security-events: write。
使用方式
技能以规则加示例的形式提供。示例工作流使用 actions/checkout@v4、github/codeql-action/init@v3、github/codeql-action/analyze@v3、zaproxy/action-baseline@v0.10.0、treosh/lighthouse-ci-action@v10、aws-actions/configure-aws-credentials@v4 等动作,并通过 secrets 引用 AWS_ROLE_ARN、S3_BUCKET、CF_DIST_ID 等敏感配置。
安全最佳实践
必须做到:
- 使用 OIDC 进行 AWS 认证(不使用长期密钥)
- 将密钥存储在 GitHub Secrets 中
- 使用最小权限的 IAM 角色
- 用完整 commit SHA 固定 action 版本
- 启用 Dependabot 更新 action
- 使用
permissions键最小化令牌作用域
禁止:
- 将密钥提交到仓库
- 在工作流中使用个人访问令牌
- 授予过宽的权限
适用场景
适合需要自动化代码质量检查、安全扫描、性能审计与部署的 GitHub 项目,尤其是静态站点或前端项目;示例展示了结合 AWS S3 与 CloudFront 的发布流程。
限制
资料未提供该技能的安装命令、收费方式、支持平台范围或实际运行效果等信息,暂未提供。相关文档提及 aws-s3-cloudfront SKILL.md 与 secure-development SKILL.md,但未给出其具体内容。