Déploiement du site socai
Utilisez cette compétence dès que la tâche implique le déploiement du site web socai, la configuration Vercel, socai.io, www.socai.io, /download, /github, ou les déploiements d'aperçu de PR.
Cette compétence est le runbook de déploiement faisant autorité. ../../../docs/website-deployment.md reste intentionnellement bref et renvoie ici pour éviter la dérive d'instructions en double.
Contexte du projet
- Source du site :
site/ - Framework : Site statique Astro
- Équipe/scope Vercel :
socai-d83824c8(socai) - Projet Vercel :
socai-site - Domaine de production :
https://socai.io - Route de documentation :
https://socai.io/docs/(pages Starlight construites avec le site Astro) - Hôte canonique :
socai.io - Comportement
www:https://www.socai.io/*doit rediriger (308) vershttps://socai.io/* - Route de téléchargement :
https://socai.io/downloadredirige vers le dernier DMG macOS universel sur le miroir de publication OSS de socai - Route GitHub :
https://socai.io/githubredirige vershttps://github.com/socai-io/socai
Paramètres attendus du projet Vercel :
| Paramètre | Valeur |
|---|---|
| Préréglage framework | Astro |
| Répertoire racine | site |
| Commande d'installation | pnpm install |
| Commande de construction | pnpm build |
| Répertoire de sortie | dist |
| Version Node.js | 24.x |
Règles de sécurité
- Utilisez le scope
socai-d83824c8pour toutes les commandes de projet/domaine Vercel. - Ne déployez pas depuis la mauvaise équipe Vercel ou un projet personnel.
- Ne commitez pas
site/.vercel/,site/dist/,site/.astro/, ousite/node_modules/. - N'activez pas les analyses sauf si l'utilisateur l'approuve explicitement.
- Ne modifiez pas les assets de publication de l'application pendant le travail de déploiement du site.
- Gardez le travail sur une branche dédiée et ouvrez/mettez à jour une PR pour les modifications du dépôt.
- Si vous modifiez temporairement les paramètres du projet Vercel pour un déploiement manuel, restaurez-les avant de terminer.
Validation locale
Avant de déployer ou d'ouvrir une PR pour du code/configuration lié au déploiement :
cd site
pnpm install
pnpm build
Validez la configuration JSON/XML lorsqu'elle est modifiée :
python3 -m json.tool site/vercel.json >/dev/null
python3 -m json.tool site/public/site.webmanifest >/dev/null
python3 - <<'PY'
import xml.etree.ElementTree as ET
ET.parse('site/dist/sitemap-index.xml')
ET.parse('site/dist/sitemap-0.xml')
PY
Inspecter l'état Vercel
vercel whoami
vercel teams ls
vercel projects ls --scope socai-d83824c8
vercel project inspect socai-site --scope socai-d83824c8 --yes
vercel domains inspect socai.io --scope socai-d83824c8
vercel domains inspect www.socai.io --scope socai-d83824c8
Confirmez que les paramètres du projet affichent le répertoire racine site, le framework Astro, la commande de construction pnpm build, la sortie dist, l'installation pnpm install.
Déploiement de production préféré
Le chemin préféré après activation de l'intégration Git :
- Fusionnez les modifications du site dans
main. - Laissez Vercel construire le projet
socai-sitedepuis le répertoire racinesite. - Vérifiez les URLs de production avec les commandes ci-dessous.
Les aperçus de PR nécessitent également que l'intégration Git soit connectée dans le tableau de bord Vercel.
Déploiement d'urgence/manuel en CLI
Étant donné que le projet Vercel est configuré avec le répertoire racine site, un déploiement local direct depuis site/ peut échouer avec des erreurs de répertoire racine site/site. Si l'intégration Git n'est pas disponible et qu'un déploiement CLI est nécessaire, utilisez cette solution de contournement avec répertoire racine temporaire et restaurez le répertoire racine par la suite.
set -euo pipefail
cat > /tmp/vercel-root-null.json <<'EOF'
{
"rootDirectory": null
}
EOF
cat > /tmp/vercel-root-site.json <<'EOF'
{
"rootDirectory": "site"
}
EOF
restore_root() {
vercel api /v10/projects/socai-site \
--scope socai-d83824c8 \
-X PATCH \
--input /tmp/vercel-root-site.json \
--silent || true
}
trap restore_root EXIT
vercel api /v10/projects/socai-site \
--scope socai-d83824c8 \
-X PATCH \
--input /tmp/vercel-root-null.json \
--silent
cd site
vercel deploy --prod --scope socai-d83824c8 --project socai-site --yes
Après le déploiement, confirmez que le répertoire racine a été restauré :
vercel project inspect socai-site --scope socai-d83824c8 --yes
Ne laissez pas le projet avec Root Directory . ou null ; les aperçus Git dépendent de site.
Vérification des URLs
Utilisez d'abord des vérifications HEAD :
curl -I https://socai.io/
curl -I https://socai.io/docs/
curl -I https://socai.io/docs/quickstart/
curl -I https://www.socai.io/
curl -I https://socai.io/sitemap.xml
curl -I https://socai.io/sitemap-index.xml
curl -I https://socai.io/download
curl -I https://socai.io/github
Comportement attendu au premier saut :
https://socai.io/retourne200.https://socai.io/docs/retourne200, et une page imbriquée comme/docs/quickstart/retourne200.https://www.socai.io/retourne308aveclocation: https://socai.io/.https://socai.io/sitemap.xmlredirige de manière permanente vers/sitemap-index.xml, qui retourne200.https://socai.io/downloadretourne une redirection Vercel (307) vers le dernier DMG macOS universel sur le miroir de publication OSS configuré.https://socai.io/githubretourne une redirection Vercel (307) vershttps://github.com/socai-io/socai.
Utilisez -L uniquement lorsque vous souhaitez suivre la chaîne :
curl -I -L --max-time 30 -o /dev/null -w 'code=%{http_code}\nfinal=%{url_effective}\n' https://socai.io/download
Configuration de l'aperçu Git
Essayez :
cd site
vercel link --yes --scope socai-d83824c8 --project socai-site
vercel git connect https://github.com/socai-io/socai --scope socai-d83824c8
Si Vercel retourne :
Échec de la liaison de socai-io/socai. Vous devez d'abord ajouter une connexion de connexion à votre compte GitHub.
alors un propriétaire du compte Vercel/GitHub doit connecter la connexion/intégration GitHub dans le tableau de bord Vercel, puis connecter socai-site à socai-io/socai avec le répertoire racine site.
Dépannage
Modifications du site ignorées après un push multi-commits
L'étape de construction ignorée dans site/vercel.json doit comparer HEAD par rapport à VERCEL_GIT_PREVIOUS_SHA (le dernier déploiement réussi pour ce projet et cette branche), pas HEAD^. Le commit final d'un push peut modifier uniquement du code Rust tandis que les commits précédents modifient le site. Si le SHA du déploiement précédent est manquant ou indisponible dans le clone superficiel, construisez plutôt que d'ignorer. La sortie avec le code 0 ignore une construction ; la sortie avec le code 1 procède.
Le répertoire racine "site" n'existe pas
Cela se produit généralement lors d'un déploiement CLI local depuis site/ alors que le projet distant a également le répertoire racine site. Utilisez la solution de contournement de déploiement manuel/urgence ci-dessus, ou préférez les déploiements Git.
Trop de fichiers téléchargés
Déployer depuis la racine du dépôt peut inclure des artefacts de build Rust/Python et dépasser le nombre de fichiers de Vercel. Ne déployez pas directement la racine du dépôt sauf si vous avez une stratégie d'ignorement/archivage testée. Préférez les déploiements Git ou le déploiement manuel/urgence depuis site/ avec réinitialisation temporaire du répertoire racine.
www.socai.io répond 200 au lieu de rediriger
Assurez-vous que le dernier déploiement de production inclut la redirection d'hôte dans site/vercel.json, puis redéployez. Vérifiez avec :
curl -I https://www.socai.io/
Les métadonnées de la dernière version GitHub sont indisponibles
Le site doit toujours afficher un contenu générique non obsolète (dernière version) et /download doit toujours rediriger vers l'asset de la dernière version de GitHub.
Rapport
Lors du compte rendu d'une tâche de déploiement, incluez :
- Branche/PR si des fichiers du dépôt ont été modifiés
- Paramètres du projet Vercel confirmés
- URL de déploiement et domaine de production
- Commandes exécutées
- Résumé de la vérification de sortie pour
/,/docs/,/docs/quickstart/,www,/download, et/github - Tout blocage manuel restant, en particulier l'intégration Git / les aperçus de PR