encore-deploy について
Git のプッシュで既存の Encore.ts および Encore.go アプリを Encore Cloud にデプロイするスキルです。開発者がプッシュ前にブランチ、環境、テスト、シークレットを確認し、デプロイ開始の有無を調べるのに役立ちます。
主な機能
- 01デプロイ先の Git リモート特定
- 02ブランチと環境の対応確認
- 03デプロイ前のテストとシークレット確認
- 04空コミットまたは Dashboard からの再デプロイ
- 05プッシュとデプロイの問題調査
活用シーン
- 01プッシュが本番環境に反映されるか確認
- 02デプロイ前にテストと環境シークレットを準備
- 03不足したシークレットの追加後に再デプロイ
- 04Git プッシュでデプロイが始まらない原因を調査
MCP 対応
Encore Cloud MCP サーバーは環境、デプロイ、ビルド、ログを一覧し、進行状況の確認に使えます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ encoredev/ skills --skill encore-deployインストール後、Claude Code で/encore-deployを入力して読み込まれたか確認します。
詳細
Encore Cloud へのデプロイ
デプロイは、アプリのデプロイ元である Git リポジトリへのコミットとプッシュで行います。Encore Cloud はビルドとテストを実行し、インフラストラクチャをプロビジョニングして、プッシュされたブランチからデプロイするすべての環境にデプロイします。同じ手順は Encore.ts と Encore.go の両方で使えます。
手順
アプリのデプロイ元リポジトリを確認する
git remote -v
- Encore 管理の Git(デフォルト): アプリは
encoreリモートからデプロイされます。そこにプッシュしてください。 - リンク済みの GitHub リポジトリ: Cloud Dashboard でアプリが GitHub にリンクされている場合(Settings > GitHub)、代わりにそのリポジトリへのプッシュでデプロイされます。通常は
originにプッシュしてください。 - どちらでもない場合: アプリはまだ Encore Cloud にリンクされていません。アプリをリンクするを参照してください。
アプリのデプロイ元がわからない場合は、ユーザーに確認してください。
プッシュによってデプロイされる環境を確認する
各環境は、それぞれのブランチ(環境の Settings > Branch Push)からデプロイされるか、手動でのみデプロイされます。新しいアプリには、アプリのメインブランチからデプロイされる staging(タイプ development)環境が1つあります。
1回のプッシュで複数の環境にデプロイされる場合があります。プッシュしようとしているブランチから本番環境がデプロイされる場合、そのプッシュによって本番環境にデプロイされるため、プッシュする前にブランチを確認してください。
デプロイする
git add -A
git commit -m "Describe the change"
git push encore # Encore-managed git
git push origin <branch> # linked GitHub repository
encore へのプッシュ: プッシュが成功すると、デプロイされる環境ごとに1行ずつ表示されます。
remote: <branch>: triggered deploy https://app.encore.dev/<app-id>/envs/<env>/deploys/<id>
該当する行が表示されない場合、何もデプロイされていません。
Everything up-to-date: 新しいコミットがありません。コミットしてから、もう一度プッシュしてください。triggered deployの行がない場合: プッシュされたブランチからデプロイされる環境がありません。
GitHub へのプッシュ: Git から Encore に関するメッセージは表示されません。Cloud Dashboard の Deployments を確認してください。
どちらの場合も、デプロイが始まるとすぐにプッシュ処理は戻ります。Cloud Dashboard、または Encore Cloud MCP サーバー(https://api.encore.dev/mcp。encore-mcp でセットアップ)で進行状況を確認できます。ここには環境、デプロイ、ビルド、およびそれらのログが表示されます。各環境の API は、カスタムドメインが設定されていない限り、https://<env>-<app-id>.encr.app で提供されます。encore logs --env=<env> でログをストリーミングできます。
再デプロイする
環境のブランチに新しいコミットをプッシュするたびに、再度デプロイされます。たとえば、未設定のシークレットを設定した後など、コードを変更せずに再デプロイするには、空のコミットをプッシュしてください。
git commit --allow-empty -m "Redeploy"
git push encore # Encore-managed git
git push origin <branch> # linked GitHub repository
Cloud Dashboard から再デプロイすることもできます。Deployments > New Deploy > Branch を選択してください。
プッシュする前に
-
テスト: デプロイ時にアプリのテストが実行され、テストに失敗するとデプロイは中止されます。先にテストを実行してください。Encore.ts では
CI=true encore testを使ってください。vitestのスクリプトは、ターミナルがない状態でウォッチモードで実行され、終了しません。Encore.go ではencore test ./...を使ってください。 -
シークレット: アプリで宣言されているすべてのシークレットには、デプロイ先の各環境で値が設定されている必要があります。設定されていない場合、
secret key(s) not definedエラーでデプロイに失敗します。環境タイプごと、または単一の環境に値を設定してください。printf '%s' "$VALUE" | encore secret set --type dev,local MySecret # development environments, such as staging printf '%s' "$VALUE" | encore secret set --type prod MySecret # production environments printf '%s' "$VALUE" | encore secret set --env <env> MySecret # one environment
アプリをリンクする
encore.app の "id" が空の場合、または encore リモートがなく、アプリが GitHub からデプロイされていない場合、そのアプリは Encore Cloud にリンクされていません。まずリンクしてください(encore-link-app を参照)。その後、ここに戻ってください。Encore Cloud 上にはあるものの、このマシンにはないアプリの場合は、encore app clone <app-id> でクローンするか、GitHub にリンクされている場合は、その GitHub リポジトリを git clone してください。
encore へのプッシュが失敗する場合
could not get Encore auth token: not logged in: ログインしてください(encore-loginを参照)。'encore' does not appear to be a git repository: リモートがありません。アプリをリンクするを参照してください。- プッシュが停止したままになる場合:
git push encoreはポート22でgit.encore.devに SSH 接続します。一部のネットワークでは、この接続がブロックされます。
ガイドライン
- プッシュする前に必ずコミットしてください。新しい変更がない状態でプッシュしても、デプロイされるものはありません。
- 特に本番環境については、プッシュするブランチからどの環境にデプロイされるのか把握してください。
encoreにプッシュした後は、デプロイが開始されたと思い込まず、triggered deployの行があることを確認してください。- 既存のアプリをデプロイするために
encore app createを実行しないでください。新しい別のアプリが作成されます。 - ドキュメント:https://encore.dev/docs/platform/deploy/deploying および https://encore.dev/docs/platform/deploy/troubleshooting