encore-deploy

Par encoredev · skills

Déployez une application Encore.ts ou Encore.go sur Encore Cloud en poussant vers le remote git Encore ou un dépôt GitHub lié, redéployez des modifications, et corrigez les déploiements qui échouent ou ne démarrent jamais. Couvre les environnements ciblés par un push, les secrets par environnement, et la liaison d'une application créée hors connexion ou depuis le Cloud Dashboard.

npx skills add https://github.com/encoredev/skills --skill encore-deploy

Déployer vers Encore Cloud

Le déploiement est un commit et une poussée vers le repository git depuis lequel l'app est déployée. Encore Cloud compile, teste, provisionne l'infrastructure et déploie vers chaque environnement qui déploie depuis la branche poussée. Les mêmes étapes fonctionnent pour Encore.ts et Encore.go.

Instructions

Trouver le repository depuis lequel l'app est déployée

git remote -v
  • Git géré par Encore (par défaut) : l'app est déployée depuis la remote encore. Poussez vers celle-ci.
  • Repository GitHub lié : si l'app est liée à GitHub dans le Cloud Dashboard (Settings > GitHub), les poussées vers ce repository sont déployées à la place. Poussez vers celui-ci, généralement origin.
  • Aucun des deux : l'app n'est pas encore liée à Encore Cloud. Voir Lier une app.

Si vous ne pouvez pas déterminer depuis quel repository l'app est déployée, demandez à l'utilisateur.

Vérifier vers quels environnements une poussée est déployée

Chaque environnement est déployé depuis sa propre branche (les Settings de l'environnement > Branch Push), ou uniquement manuellement. Une nouvelle app a un environnement, staging (type development), qui déploie la branche principale de l'app.

Une seule poussée peut déployer plusieurs environnements. Si un environnement de production est déployé depuis la branche que vous êtes sur le point de pousser, la poussée est déployée vers la production, donc vérifiez la branche avant de pousser.

Déployer

git add -A
git commit -m "Describe the change"
git push encore              # Git géré par Encore
git push origin <branch>     # Repository GitHub lié

Pousser vers encore : une poussée réussie affiche une ligne par environnement en cours de déploiement :

remote: <branch>: triggered deploy https://app.encore.dev/<app-id>/envs/<env>/deploys/<id>

Si aucune telle ligne n'apparaît, rien n'a été déployé :

  • Everything up-to-date : aucun nouveau commit n'a été créé. Committez, puis poussez à nouveau.
  • Pas de ligne triggered deploy : aucun environnement n'est déployé depuis la branche poussée.

Pousser vers GitHub : git n'affiche rien de la part d'Encore. Vérifiez Deployments dans le Cloud Dashboard.

Dans les deux cas, la poussée revient dès que le déploiement commence. Suivez la progression dans le Cloud Dashboard, ou via le MCP server Encore Cloud (https://api.encore.dev/mcp), qui liste les environnements, déploiements, compilations et leurs logs. L'API de chaque environnement est servie à https://<env>-<app-id>.encr.app, sauf s'il a un domaine personnalisé. encore logs --env=<env> diffuse ses logs.

Déployer à nouveau

Chaque nouveau commit poussé vers la branche d'un environnement la redéploie. Pour redéployer sans changement de code, par exemple après avoir défini un secret manquant, poussez un commit vide :

git commit --allow-empty -m "Redeploy"
git push encore              # Git géré par Encore
git push origin <branch>     # Repository GitHub lié

Vous pouvez aussi redéployer depuis le Cloud Dashboard : Deployments > New Deploy > Branch.

Avant de pousser

  • Tests : le déploiement exécute les tests de l'app, et les tests échoués le bloquent. Exécutez-les d'abord. Pour Encore.ts, utilisez CI=true encore test : un script vitest s'exécute en mode watch sans terminal et ne sort jamais. Pour Encore.go, utilisez encore test ./....

  • Secrets : chaque secret déclaré par l'app a besoin d'une valeur dans chaque environnement vers lequel il est déployé, sinon le déploiement échoue avec secret key(s) not defined. Définissez les valeurs par type d'environnement, ou pour un seul environnement :

    printf '%s' "$VALUE" | encore secret set --type dev,local MySecret   # environnements de développement, comme staging
    printf '%s' "$VALUE" | encore secret set --type prod MySecret        # environnements de production
    printf '%s' "$VALUE" | encore secret set --env <env> MySecret        # un environnement

Lier une app

Non connecté : connectez-vous d'abord avec encore auth login, qui ouvre un navigateur. Sans navigateur, créez une clé d'authentification dans le Cloud Dashboard (App Settings > Auth Keys) et définissez-la dans la variable d'environnement ENCORE_AUTH_KEY, par exemple depuis un gestionnaire de secrets. Le CLI s'y connecte automatiquement. Ne passez pas une vraie clé sur la ligne de commande avec --auth-key : elle finit dans l'historique shell et les listes de processus.

App créée dans le Cloud Dashboard : clonez-la. L'ID de l'app est dans l'URL du dashboard, app.encore.dev/<app-id>. Si l'app est liée à GitHub, clonez plutôt le repository GitHub.

encore app clone <app-id>              # ajoute la remote encore
cd <app-id>

App locale créée non connecté ou avec --platform=false : enregistrez-la. Copiez d'abord les paramètres dans encore.app autres que id et lang, puis rajoutez-les après.

rm encore.app
encore app init my-app --lang ts       # --lang go pour Encore.go. Ajoute la remote encore
git add -A && git commit -m "Link to Encore Cloud"
git push encore

encore app link <app-id> lie seulement à une app qui existe déjà sur Encore Cloud, et ajoute la remote encore seulement quand le repository n'a pas de remotes. Si la remote est toujours manquante, ajoutez-la :

git remote add encore encore://<app-id>

Quand une poussée vers encore échoue

  • could not get Encore auth token: not logged in : exécutez encore auth login.
  • 'encore' does not appear to be a git repository : la remote est manquante. Voir Lier une app.
  • La poussée se bloque : git push encore utilise SSH vers git.encore.dev sur le port 22, que certains réseaux bloquent.

Recommandations

  • Committez toujours avant de pousser. Une poussée sans rien de nouveau ne déploie rien.
  • Connaissez les environnements qui sont déployés depuis la branche que vous poussez, en particulier la production.
  • Après avoir poussé vers encore, vérifiez les lignes triggered deploy au lieu de supposer que le déploiement a commencé.
  • N'exécutez pas encore app create pour déployer une app existante. Cela crée une nouvelle app séparée.
  • Docs : https://encore.dev/docs/platform/deploy/deploying et https://encore.dev/docs/platform/deploy/troubleshooting

Skills similaires