Déployer un projet avec un agent de code IA
Les commandes qu’un agent de code lance pour mettre un dossier en ligne sur *.gheima.ma : la connexion faite par la personne, et que faire quand une étape échoue.
Pour un agent de code à qui l’on demande « déploie ça sur gheima.ma ». Lancez chaque commande depuis le dossier du projet avec --json : stdout porte un seul document JSON, et une erreur arrive sur stderr sous la forme {"error":{"code","message"}}. Le code de sortie dit ce qui s’est passé : 0 ok, 2 une option manquante, 3 non connecté, 5 refusé, 7 délai dépassé, 8 le déploiement n’est pas passé en ligne.
1. Obtenir la CLI#
npx -y @gheima/cli@latest --version2. Se connecter : la seule étape de la personne#
gheima whoami --json
# sortie 0 : déjà connecté, passez à l’étape 3. Sortie 3 : connectez-vous ci-dessous.
gheima login --no-wait --json
gheima login --resume --timeout 110 --json- 1
Transmettre le lien
Dites à la personne, mot pour mot : « Ouvrez <verificationUrl>, connectez-vous ou créez un compte, puis approuvez le code <userCode>. » Utilisez les valeurs affichées par login --no-wait.
- 2
Attendre
Lancez gheima login --resume --timeout 110 --json une fois. Une sortie 0 signifie connecté : passez à l’étape 3. Une sortie 7 avec le code login_pending signifie que la personne n’a pas encore approuvé : arrêtez-vous, dites que vous attendez son approbation, et relancez login --resume quand elle vous dit avoir approuvé, au lieu d’interroger jusqu’à l’expiration du code. Le code expire après dix minutes ; ensuite, recommencez avec login --no-wait.
Les nouveaux comptes se font sur invitation pendant la bêta. Si la page de connexion indique qu’une invitation est nécessaire, dites à la personne d’en demander une à hello@gheima.ma, et arrêtez-vous jusqu’à ce qu’elle ait un compte.
3. Déployer#
gheima deploy --yes --jsonLe premier déploiement dans un dossier crée un service, nommé d’après package.json ou le dossier (--name en fixe un autre), et lie le dossier dans .gheima/. Un dossier de fichiers HTML simples (un index.html et rien qui construise ou lance un serveur) devient un site statique, que les offres comptent à part des services (choisissez le type vous-même avec --type). Les déploiements suivants réutilisent le service. D’où vient le code :
- Le dossier a un remote git
- Gheima construit le dépôt distant, sur la branche courante. Poussez d’abord : les commits restés en local ne sont pas déployés. Un dépôt GitHub privé demande aussi l’application GitHub de Gheima (voir plus bas).
- Pas de remote, ou pas un dépôt git
- Le dossier est envoyé puis construit. Dans un dépôt git, l’envoi suit .gitignore ; les fichiers .env et node_modules sont toujours laissés de côté. Ajoutez --upload pour envoyer les fichiers même s’il y a un remote.
Quand une étape échoue#
- Sortie 8 : le déploiement n’est pas passé en ligne
- Lisez le journal de build avec gheima logs --build, puis le code d’erreur qu’il cite dans https://gheima.ma/fr/docs/errors.md. Corrigez l’application, poussez (sauf pour un envoi de fichiers), et relancez gheima deploy --json.
- Sortie 3 : non connecté
- Revenez à l’étape 2.
- Sortie 2 qui cite --yes
- Le premier déploiement crée un service et demande d’abord. Passez --yes une fois que la personne a demandé le déploiement.
- Sortie 5 : le nom est pris
- Passez un autre --name.
- Sortie 1 avec le code payload_too_large : l’envoi est trop gros
- Laissez de côté la sortie de build et les gros fichiers avec .gitignore : le build installe lui-même les dépendances et produit sa sortie.
- Le journal de build dit que le dépôt est introuvable
- Le dépôt est privé et Gheima ne peut pas le lire. Demandez à la personne d’y installer l’application GitHub de Gheima depuis https://gheima.ma/api/github/install, puis redéployez. Ou envoyez les fichiers avec --upload.
- Sortie 7 : délai d’attente dépassé
- Le déploiement continue. Suivez-le avec gheima services deployments <service> --json jusqu’à ce qu’il s’arrête : LIVE signifie en ligne ; FAILED, CANCELLED ou SKIPPED porte un errorMessage qui dit pourquoi.
Avec MCP#
Avec le serveur MCP de Gheima connecté (https://gheima.ma/mcp) : gheima_services_create avec un name et un repoUrl, puis gheima_services_deploy, puis gheima_services_deployments jusqu’à ce que ce déploiement s’arrête (LIVE, ou FAILED, CANCELLED ou SKIPPED avec un errorMessage), puis gheima_services_get pour l’url. Pour un dossier sans remote git, appelez gheima_services_create (un name, sans repoUrl), puis gheima_services_create_upload, et lancez dans le dossier la commande qu’il renvoie : elle envoie les fichiers et lance le déploiement ; suivez ensuite gheima_services_deployments de la même façon.