这是一个面向 Codex 和 ChatGPT 的中文 Plugin:它会先读取当前 GitHub 仓库的全部相关代码,自行识别纯静态站、Vue/React SPA、SSG 或其他静态构建项目,再完成 GitHub Actions → 阿里云私有 OSS → ESA 的部署、证书、域名、跳转、缓存与线上验收。
目标不是“生成一份 workflow”,而是把首次手动部署和默认分支 push 自动部署都真实调通,并留下可重复维护的配置和 README 说明。
- 从代码识别包管理器、Node 版本、框架、构建命令、产物目录、路由与 PWA;
- 仓库未固定 Node 时查询并采用当前最新 LTS;
- 盘点并配置专用私有 OSS bucket 或经确认的独占前缀;
- 配置 ESA 私有 OSS 回源、目标主机证书、HTTPS、301 与缓存规则;
- 为原始静态站、构建型 SPA 和 SSG 自动选择不同缓存档案;
- 生成分阶段启用的部署 workflow 和只读定时健康检查;
- 验证证书、跳转、页面、私有回源、MISS→HIT、404 不缓存、DNS 和自动部署;
- 在目标仓库保存无凭证配置,并幂等维护 README 部署说明。
它默认少问用户:能从代码、现有资源和安全默认值判断的事项会自行决定;只有鉴权缺失、生产目标有高风险歧义、未知对象删除、付费资源或缺少生产变更授权时才暂停。
- OSS bucket 必须私有并关闭公开访问;
- 只有专用 bucket 或已确认独占前缀才允许部署时删除陈旧对象;
- 共享 ESA 站点上的规则必须限制到目标主机,不能影响其他子域名;
- 不在仓库、日志或 Plugin 中保存 AccessKey、令牌、Cookie 或证书私钥;
- 优先 GitHub OIDC 与 RAM 最小权限;不支持时才使用 GitHub Secrets;
- 首次仅手动部署,完整验收成功后才启用默认分支 push。
先在终端或浏览器登录 GitHub 和阿里云,然后在目标静态站仓库中调用:
$github-actions-oss-esa-static-deploy
请把当前静态网站部署到阿里云 OSS 和 ESA,并调通 main push 自动部署。
也可以直接用自然语言描述相同目标,Skill 允许隐式触发。
常见前置条件:
- 本地有
git、Node.js 20+; - 若通过终端发布或查看 Actions,安装并登录
gh; - 阿里云 CLI/API 可用,或已在浏览器登录阿里云控制台;
- 当前会话能够读取目标仓库并获准执行请求中的云端与 GitHub 变更。
不需要把任何 AccessKey 粘贴到对话中。若最终 workflow 不能使用 OIDC,Plugin 会在 GitHub 中创建所需 Secret,并只在文档中记录 Secret 名称。
Plugin 必需入口位于 .codex-plugin/plugin.json,本仓库也自带 Codex Marketplace 清单。可直接安装:
codex plugin marketplace add shishengkai/github-actions-oss-esa-static-deploy --ref main
codex plugin add github-actions-oss-esa-static-deploy@shishengkai-tools更新 Plugin:
codex plugin marketplace upgrade shishengkai-tools安装或更新后新开 Codex 会话,再用一个测试仓库提出代表性部署请求;涉及现网前,先确认 Skill 能正确识别仓库且只读盘点到预期阿里云账号。
.codex-plugin/plugin.json
.agents/plugins/marketplace.json
skills/github-actions-oss-esa-static-deploy/
├── SKILL.md
├── agents/openai.yaml
├── references/
└── scripts/
schemas/deployment-config.schema.json
tests/
.github/workflows/test.yml
主 Skill 和所有参考资料均使用中文。第一版是 skills-only Plugin,不内置 MCP 服务;它利用 Codex/ChatGPT 已有的 GitHub、终端、API 和浏览器能力,因此不会托管或长期保管团队凭证。
# 识别一个目标仓库
npm run inspect -- --repo /absolute/path/to/repository
# 构建后校验待上传目录
npm run verify:artifact -- --dir /absolute/path/to/dist
# 根据生成的验收配置检查线上
npm run verify:production -- --config /absolute/path/to/verification.json
# 运行 Plugin 自身测试
npm testverify-artifact 可通过 --manifest <文件> 保存逐文件 SHA-256 清单;verify-production 可通过 --report <文件> 保存结构化验收报告。
- 不托管需要常驻 Node/PHP/Java 服务、数据库、SSR 或动态接口的项目;
- 不把 OSS 改成公开网站;
- 不替用户购买资源或擅自扩大 RAM 权限;
- 不对共享 ESA 站点执行全局规则或全站 purge;
- 不保证仅靠一次静态检查识别所有 monorepo,出现多个同等候选且会影响生产目标时会请求一次必要确认。
本仓库没有运行时 npm 依赖。修改后至少运行:
npm test
node --check skills/github-actions-oss-esa-static-deploy/scripts/inspect-repo.mjs
node --check skills/github-actions-oss-esa-static-deploy/scripts/verify-artifact.mjs
node --check skills/github-actions-oss-esa-static-deploy/scripts/verify-production.mjs发布新版本时同步更新 Plugin manifest 与 package.json 的版本,并用真实的原始静态站、history SPA 和 SSG 仓库各完成一次端到端回归。
本仓库 push 和 pull request 会自动运行同一套语法检查与测试;workflow 中使用的 GitHub Actions 均固定到完整 commit SHA。
本项目采用 MIT License。
