Despliegue de Sitio Estático en Aliyun
Reglas Principales
- Tratar el alojamiento estático de EMAS Serverless como la ruta de previsualización predeterminada para novatos sin dominio. Le proporciona al usuario una URL predeterminada de Aliyun y evita el problema común de descarga de archivos del dominio predeterminado de OSS.
- Tratar OSS + GitHub Actions como la ruta de automatización repetible solo cuando el usuario quiera explícitamente automatización de GitHub a Aliyun, ya tenga o pueda crear un bucket OSS, y entienda que la URL final debe verificarse para que se abra en línea como HTML.
- No fingir que el inicio de sesión en Aliyun, la verificación de identidad real, la activación de servicios de pago, la creación de AccessKey, la autenticación de dos factores de GitHub o la confirmación de facturación se pueden automatizar. Pausar y pedir al usuario que complete esos pasos.
- Nunca pedir al usuario que pegue
ALIYUN_ACCESS_KEY_SECRET, tokens de GitHub, contraseñas o capturas de pantalla de pago en el chat. Pedirle que escriba los secretos directamente en GitHub Secrets o en la interfaz de Aliyun/GitHub.
Primera Decisión
Antes de escribir el código de despliegue, decidir la ruta y decirla explícitamente:
| Ruta | Cuándo Usarla | Nivel de Automatización | Riesgo |
|---|---|---|---|
| Alojamiento estático EMAS | Sin dominio personalizado, previsualización para novatos, el usuario puede manejar la consola de Aliyun | El agente prepara los archivos y guía los pasos en la consola; el usuario maneja inicio de sesión/pago/subida si es necesario | La interfaz de la consola puede cambiar y puede requerir subida manual |
| Flujo de trabajo OSS | El usuario quiere automatización Codex X GitHub X Aliyun; se puede preparar un bucket OSS y AccessKey | El agente puede generar el flujo de trabajo, subir código, activar CI y verificar la URL | Los dominios predeterminados de OSS pueden descargar HTML a menos que los metadatos o el alojamiento estático estén bien configurados |
Si el usuario solo dice "没有域名先给客户看", usar primero la guía de EMAS. Si el usuario dice "自动上线", "XgitX阿里云", "GitHub 自动部署", o "以后反复更新", usar los scripts del flujo de trabajo OSS pero explicar el riesgo de verificación de descarga del navegador antes de continuar.
Flujo de Trabajo
- Inspeccionar el proyecto:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project . - Explicar la ruta de despliegue en una frase:
- OSS: "Usar GitHub Actions para subir a Aliyun OSS y verificar que el navegador no descargue el archivo."
- EMAS: "Primero usar el alojamiento estático de EMAS de Aliyun para obtener una URL de previsualización sin dominio."
- Si el usuario no ha preparado el acceso a Aliyun, leer
references/secrets-hand-off.mdy pedirle que complete inicio de sesión/pago/AccessKey/GitHub Secrets de Aliyun. Usar capturas de pantalla incluidas al explicar dónde hacer clic. - Solo para automatización OSS, generar el flujo de trabajo de GitHub Actions:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/prepare_oss_workflow.py --project . --force - Verificar el flujo de trabajo generado y el proyecto local nuevamente:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project . --strict - Confirmar/subir el proyecto a GitHub si el usuario lo pidió y hay credenciales disponibles. Si Git LFS está mal instalado, usar la salida del script para explicar la solución en lugar de reintentar a ciegas.
- Después de que el despliegue termine, verificar la URL pública:
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/verify_deployed_url.py "$ALIYUN_SITE_URL"
Secretos de GitHub Requeridos
Para el flujo de trabajo OSS incluido, pedir al usuario que cree estos secretos de repositorio en GitHub:
ALIYUN_ACCESS_KEY_IDALIYUN_ACCESS_KEY_SECRETALIYUN_OSS_BUCKETALIYUN_OSS_ENDPOINT
Opcional:
ALIYUN_SITE_URLpara verificación durante el despliegue. Ejemplo:https://your-bucket.oss-cn-hangzhou.aliyuncs.com/index.html
Para EMAS, usar los nombres exactos de secretos que requiere el script de despliegue EMAS de ese proyecto. Si no existe un script EMAS, no inventar nombres de secretos falsos; guiar al usuario en la subida manual del alojamiento estático EMAS o crear un script específico del proyecto después de confirmar la ruta de la API/SDK oficial.
Límite Humano
Detenerse y llamar al usuario cuando falte alguno de los siguientes:
- La cuenta de Aliyun no ha iniciado sesión, no está verificada con identidad real o solicita pago.
- El espacio de servicio EMAS, el bucket OSS o el alojamiento estático no se han creado.
- No se ha creado AccessKey.
- Los Secretos de GitHub no están completos.
- GitHub solicita nombre de usuario/token o confirmación de dos factores.
Mostrar al usuario los campos exactos a completar, pero no recibir secretos en el chat.
Criterios de Éxito del Despliegue
Tratar el despliegue como incompleto hasta que todas las verificaciones pasen:
- El repositorio de GitHub tiene los archivos fuente del sitio y las instrucciones de despliegue.
- Para automatización OSS, el repositorio de GitHub tiene el flujo de trabajo generado en
.github/workflows/deploy-aliyun-static-site.ymly la ejecución de Actions tiene éxito enmainoworkflow_dispatch. - Para subida manual/alojamiento estático EMAS, la consola de Aliyun muestra los archivos de la página de inicio subidos y una URL predeterminada pública.
- La URL pública devuelve HTTP 200 o 3xx seguido de 200.
- La respuesta es HTML, no texto de error XML ni metadatos de descarga forzada.
- La página contiene
<htmly un título no vacío o texto visible del cuerpo. - Los activos clave referenciados por la página de inicio son URLs públicas o remotas.
Referencias
- Leer
references/secrets-hand-off.mdcuando el usuario necesite ayuda paso a paso con los Secretos de Aliyun/GitHub. - Leer
references/troubleshooting.mdcuando falle el despliegue o la verificación de la URL.