mcpField
E
encore-deploy

encore-deploy

github.com/encoredevクラウド・DevOps3058 回インストール2 週間前に更新
リポジトリ

encore-deploy について

Git のプッシュで既存の Encore.ts および Encore.go アプリを Encore Cloud にデプロイするスキルです。開発者がプッシュ前にブランチ、環境、テスト、シークレットを確認し、デプロイ開始の有無を調べるのに役立ちます。

主な機能

  1. 01デプロイ先の Git リモート特定
  2. 02ブランチと環境の対応確認
  3. 03デプロイ前のテストとシークレット確認
  4. 04空コミットまたは Dashboard からの再デプロイ
  5. 05プッシュとデプロイの問題調査

活用シーン

  1. 01プッシュが本番環境に反映されるか確認
  2. 02デプロイ前にテストと環境シークレットを準備
  3. 03不足したシークレットの追加後に再デプロイ
  4. 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

コメント