Déploiement de Site Statique sur Aliyun
Règles Fondamentales
- Considérez l'hébergement statique EMAS Serverless comme la route de prévisualisation par défaut sans nom de domaine. Elle fournit à l'utilisateur une URL Aliyun par défaut et évite le problème courant de téléchargement lié au domaine OSS par défaut.
- Considérez OSS + GitHub Actions comme la route d'automatisation reproductible uniquement si l'utilisateur demande explicitement une automatisation GitHub vers Aliyun, possède déjà ou peut créer un bucket OSS, et comprend que l'URL finale doit être vérifiée pour s'ouvrir en ligne sous forme de HTML.
- Ne prétendez pas que la connexion à Aliyun, la vérification d'identité réelle, l'activation de services payants, la création de clés d'accès (AccessKey), la double authentification GitHub (2FA), ou la confirmation de facturation peuvent être automatisées. Interrompez et demandez à l'utilisateur d'effectuer ces étapes.
- Ne demandez jamais à l'utilisateur de coller
ALIYUN_ACCESS_KEY_SECRET, des tokens GitHub, des mots de passe ou des captures d'écran de paiement dans le chat. Demandez-lui de saisir les secrets directement dans les secrets GitHub ou l'interface Aliyun/GitHub.
Première Décision
Avant d'écrire le code de déploiement, choisissez la route et dites-la explicitement :
| Route | Utilisation Quand | Niveau d'Automatisation | Risque |
|---|---|---|---|
| Hébergement statique EMAS | Pas de nom de domaine, prévisualisation novice, l'utilisateur peut utiliser la console Aliyun | L'agent prépare les fichiers et guide les étapes console ; l'utilisateur gère la connexion/paiement/téléversement si nécessaire | L'interface console peut changer et peut nécessiter un téléversement manuel |
| Workflow OSS | L'utilisateur souhaite une automatisation Codex X GitHub X Aliyun ; le bucket OSS et la clé d'accès peuvent être préparés | L'agent peut générer le workflow, pousser le code, déclencher l'intégration continue et vérifier l'URL | Les domaines OSS par défaut peuvent forcer le téléchargement du HTML sauf si les métadonnées ou l'hébergement statique sont corrects |
Si l'utilisateur dit seulement "没有域名先给客户看" (pas de nom de domaine, montrez d'abord au client), suivez d'abord les conseils EMAS. Si l'utilisateur dit "自动上线" (mise en ligne automatique), "XgitX阿里云" (XgitX Aliyun), "GitHub 自动部署" (déploiement automatique GitHub), ou "以后反复更新" (mises à jour répétées futures), utilisez les scripts du workflow OSS mais expliquez le risque de vérification du téléchargement par navigateur avant de continuer.
Workflow
- Inspectez le projet :
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project . - Expliquez la route de déploiement en une phrase :
- OSS : "Utilisation de GitHub Actions pour téléverser vers Aliyun OSS, et vérification que le navigateur n'affiche pas un fichier téléchargé."
- EMAS : "D'abord, utilisez l'hébergement statique EMAS d'Aliyun pour obtenir une URL d'aperçu sans nom de domaine."
- Si l'utilisateur n'a pas préparé l'accès Aliyun, lisez
references/secrets-hand-off.mdet demandez-lui de compléter la connexion/paiement/clé d'accès/secrets GitHub. Utilisez les captures d'écran fournies pour expliquer où cliquer. - Uniquement pour l'automatisation OSS, générez le workflow GitHub Actions :
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/prepare_oss_workflow.py --project . --force - Vérifiez à nouveau le workflow généré et le projet local :
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/check_readiness.py --project . --strict - Effectuez un commit et un push du projet vers GitHub si l'utilisateur l'a demandé et si les identifiants sont disponibles. Si Git LFS est mal installé, utilisez la sortie du script pour expliquer la correction au lieu de réessayer aveuglément.
- Une fois le déploiement terminé, vérifiez l'URL publique :
python3 /Users/likai/.codex/skills/aliyun-static-site-deploy/scripts/verify_deployed_url.py "$ALIYUN_SITE_URL"
Secrets GitHub Requis
Pour le workflow OSS inclus, demandez à l'utilisateur de créer ces secrets de dépôt sur GitHub :
ALIYUN_ACCESS_KEY_IDALIYUN_ACCESS_KEY_SECRETALIYUN_OSS_BUCKETALIYUN_OSS_ENDPOINT
Facultatif :
ALIYUN_SITE_URLpour la vérification lors du déploiement. Exemple :https://your-bucket.oss-cn-hangzhou.aliyuncs.com/index.html
Pour EMAS, utilisez les noms de secrets exacts requis par le script de déploiement EMAS de ce projet. Si aucun script EMAS n'existe, n'inventez pas de noms de secrets factices ; guidez l'utilisateur à travers le téléversement manuel de l'hébergement statique EMAS ou créez un script spécifique au projet après avoir confirmé le chemin officiel de l'API/SDK.
Limite Humaine
Arrêtez-vous et appelez l'utilisateur en cas d'absence de l'un des éléments suivants :
- Le compte Aliyun n'est pas connecté, pas vérifié en nom réel, ou demande un paiement.
- L'espace de service EMAS, le bucket OSS ou l'hébergement statique n'a pas été créé.
- La clé d'accès (AccessKey) n'est pas créée.
- Les secrets GitHub ne sont pas renseignés.
- GitHub demande un nom d'utilisateur/token ou une confirmation à deux facteurs.
Montrez à l'utilisateur les champs exacts à remplir, mais ne recevez pas de secrets dans le chat.
Critères de Succès du Déploiement
Considérez le déploiement comme incomplet tant que toutes les vérifications ne sont pas passées :
- Le dépôt GitHub contient la source du site web et les instructions de déploiement.
- Pour l'automatisation OSS, le dépôt GitHub contient le workflow généré sous
.github/workflows/deploy-aliyun-static-site.ymlet l'exécution des Actions réussit surmainouworkflow_dispatch. - Pour le téléversement manuel/hébergement statique EMAS, la console Aliyun affiche les fichiers de la page d'accueil téléversés et une URL publique par défaut.
- L'URL publique renvoie un code HTTP 200 ou 3xx suivi de 200.
- La réponse est du HTML, pas un texte d'erreur XML ou des métadonnées forçant le téléchargement.
- La page contient
<htmlet un titre non vide ou un texte de corps visible. - Les principaux assets référencés par la page d'accueil sont des URLs publiques ou distantes.
Références
- Lisez
references/secrets-hand-off.mdlorsque l'utilisateur a besoin d'aide étape par étape pour les secrets Aliyun/GitHub. - Lisez
references/troubleshooting.mdlorsque le déploiement ou la vérification d'URL échoue.