Skip to content

Repository files navigation

GitHub → OSS → ESA Static Deploy

GitHub → OSS → ESA Static Deploy

这是一个面向 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 test

verify-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。

License

本项目采用 MIT License

About

中文 Codex Plugin:自动将静态站从 GitHub Actions 部署到阿里云私有 OSS,并用 ESA 加速和完成线上验收。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages