Communitygithub.com

阿里云静态网站部署技能

用于将前端静态网站部署到阿里云(无需自定义域名)的 Codex 技能和教程。

阿里云静态网站部署技能 是什么?

本技能为 AI 助手(如 Codex)提供了一套完整的流程,帮助开发者将前端静态网站部署到阿里云,且无需自定义域名。它主要提供两条路线:一是面向新手的 EMAS Serverless 静态托管,可快速获得阿里云默认预览 URL,避免 OSS 默认域名强制下载问题;二是面向需要持续集成和自动化的用户,通过 OSS 配合 GitHub Actions 实现代码推送后的自动构建与部署。技能内嵌了多个辅助脚本,用于检查项目就绪状态、生成 OSS 工作流文件以及验证部署后的 URL 是否正常返回 HTML 页面。同时,它严格划清了人机边界:要求用户预先完成阿里云登录、实名认证、AccessKey 创建、GitHub Secrets 填写等操作,且禁止在聊天中泄露密钥。支持 EMAS 和 OSS 两种部署方式,覆盖了从单次预览到重复上线的主流场景。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add 784697524-ux/aliyun-static-site-deploy-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

阿里云静态网站部署

核心规则

  • 将 EMAS Serverless 静态托管 视为默认的新手无域名预览路线。它能为用户提供一个阿里云默认 URL,并避免常见的 OSS 默认域名下载问题。
  • 将 OSS + GitHub Actions 视为可重复的自动化路线,仅当用户明确希望实现 GitHub 到阿里云的自动化、已经或可以创建 OSS Bucket,并且理解最终 URL 必须验证是否直接以内嵌 HTML 方式打开时使用。
  • 不要假装阿里云登录、实名认证、付费服务激活、AccessKey 创建、GitHub 两步验证或账单确认可以自动完成。请暂停并让用户自行完成这些步骤。
  • 切勿要求用户在聊天中粘贴 ALIYUN_ACCESS_KEY_SECRET、GitHub 令牌、密码或付款截图。请让用户直接在 GitHub Secrets 或阿里云/GitHub 界面上输入密钥。

第一步决策

在编写部署代码之前,先确定路线并明确说明:

路线使用场景自动化程度风险
EMAS 静态托管无自定义域名、新手预览、用户可操作阿里云控制台Agent 准备文件并指导控制台步骤;用户处理登录/付费/上传(如需)控制台 UI 可能变更,可能需要手动上传
OSS 工作流用户希望实现 Codex × GitHub × 阿里云自动化;OSS Bucket 和 AccessKey 已就绪Agent 可生成工作流、推送代码、触发 CI 并验证 URL如果元数据/静态托管设置不正确,OSS 默认域名可能会下载文件

如果用户仅说“没有域名先给客户看”,请优先使用 EMAS 指导。如果用户说“自动上线”、“XgitX阿里云”、“GitHub 自动部署”或“以后反复更新”,请使用 OSS 工作流脚本,但在继续之前说明浏览器下载验证风险。

工作流程

  1. 检查项目:
    python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project .
    
  2. 用一句话解释部署路线:
    • OSS:“使用 GitHub Actions 上传到阿里云 OSS,并验证浏览器不以文件下载方式打开。”
    • EMAS:“先用阿里云 EMAS 静态托管获取无域名预览地址。”
  3. 如果用户尚未准备好阿里云访问权限,请阅读 references/secrets-hand-off.md,并让用户完成阿里云登录/付费/AccessKey/GitHub Secrets 配置。解释点击位置时可使用附带截图。
  4. 仅限 OSS 自动化,生成 GitHub Actions 工作流:
    python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/prepare_oss_workflow.py --project . --force
    
  5. 再次验证生成的工作流和本地项目:
    python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project . --strict
    
  6. 如果用户要求且凭据可用,则将项目提交/推送至 GitHub。如果 Git LFS 安装不正确,请使用脚本输出来解释修复方法,而不是盲目重试。
  7. 部署完成后,验证公共 URL:
    python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/verify_deployed_url.py "$ALIYUN_SITE_URL"
    

必需的 GitHub Secrets

对于附带的 OSS 工作流,请让用户在 GitHub 中创建以下仓库机密:

  • ALIYUN_ACCESS_KEY_ID
  • ALIYUN_ACCESS_KEY_SECRET
  • ALIYUN_OSS_BUCKET
  • ALIYUN_OSS_ENDPOINT

可选:

  • ALIYUN_SITE_URL 用于部署时验证。示例:https://your-bucket.oss-cn-hangzhou.aliyuncs.com/index.html

对于 EMAS,请使用该项目中 EMAS 部署脚本所需的确切机密名称。如果不存在 EMAS 脚本,不要编造虚假的机密名称;请引导用户手动进行 EMAS 静态托管上传,或在确认官方 API/SDK 路径后创建特定项目的脚本。

人机边界

当以下任何一项缺失时,停止并呼叫用户:

  • 阿里云账户未登录、未通过实名认证或要求付费。
  • EMAS 服务空间、OSS Bucket 或静态托管尚未创建。
  • AccessKey 尚未创建。
  • GitHub Secrets 尚未填写。
  • GitHub 要求输入用户名/令牌或二次确认。

向用户展示确切的填写字段,但不要在聊天中接收密钥。

部署成功标准

在所有检查通过之前,部署视为未完成:

  • GitHub 仓库包含已提交的网站源码和部署说明。
  • 对于 OSS 自动化,GitHub 仓库包含生成的工作流 .github/workflows/deploy-aliyun-static-site.yml,并且 Actions 运行在 main 或 workflow_dispatch 上成功。
  • 对于 EMAS 手动/静态托管上传,阿里云控制台显示已上传的主页文件及公共默认 URL。
  • 公共 URL 返回 HTTP 200 或 3xx 后跟 200。
  • 响应为 HTML,而不是 XML 错误文本或强制下载元数据。
  • 页面包含 <html 以及非空的标题或可见的正文文本。
  • 主页引用的关键资源为公共或远程 URL。

参考资料

  • 当用户需要阿里云/GitHub Secrets 的分步帮助时,请阅读 references/secrets-hand-off.md。
  • 当部署或 URL 验证失败时,请阅读 references/troubleshooting.md。

相关技能