This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

EAS Workflows で web アプリを EAS Hosting にデプロイする

ページを編集

既存の EAS Workflows に web ビルドの EAS Hosting へのデプロイを追加し、Android と iOS のリリースと並行して配信する方法を学びます。


これまでの章で作ったワークフローは、Android と iOS を対象にしたものでした。これを拡張して、同じリリースに合わせて web ビルドも EAS Hosting へデプロイしてみましょう。

この章で学べること

  • 静的な web ビルドを書き出すよう Expo プロジェクトを設定する
  • preview.yml に web デプロイのジョブを追加して、本番以外の web ビルドを作成する
  • production.yml に web デプロイのジョブを追加して、本番の web ビルドを作成する

EAS Hosting と deploy ジョブ

EAS Hosting は、Expo アプリの web ビルドをホスティング・デプロイするためのサービスです。各デプロイには固有の URL が割り当てられ、プロジェクトごとに 1 つの本番 URL があり、最後に本番としてデプロイした内容を配信します。

EAS Workflows の事前パッケージ済み deploy ジョブは、web のエクスポートを実行し、その出力を EAS Hosting にアップロードして、デプロイ先の URL をジョブの出力として返します。deploy ジョブには 2 つのパラメーターがあります。

パラメーター説明
prodboolean任意。true の場合、プロジェクトの本番 URL にデプロイします。省略した場合はプレビューとしてデプロイします。
aliasstring任意。awesome-project--staging.expo.app のような安定したエイリアス URL に名前を付けます。

静的エクスポートのために web.output を設定する

ワークフローに web デプロイのジョブを追加する前に、静的な web ビルドを書き出すよう Expo プロジェクトを設定する必要があります。app.jsonweb.output フィールドを static に設定します。

app.json
{ "expo": { %%placeholder-start%%... %%placeholder-end%% "web": { "output": "static" } } }

static は、EAS Hosting が配信できる静的な HTML・JavaScript・アセットファイルのディレクトリを生成するよう Expo CLI に指示します。Expo は singleserver の出力にも対応していますが、static はどのホストでも配信できるプレーンなファイルを生成するので、ここではそれで十分です。

app.json を上のように設定したら、変更をコミットしてリポジトリの main ブランチにプッシュします。

web のプレビューデプロイを追加する

プレビューデプロイと本番デプロイを分けるのが prod: true の指定です。プレビューにはデプロイごとに固有の URL が割り当てられます。プレビューワークフローは第 3 章のステップ 1 で作成しました。そのワークフローに deploy_web ジョブを追加して、新しいプレビュービルドを作成するたびに新しい web デプロイも得られるようにしましょう。

1

deploy_web ジョブを追加する

.eas/workflows/preview.yml を開いて deploy_web ジョブを追加します。この新しいジョブは needs による依存関係を持たないため、既存のビルドジョブと並列に実行されます。

.eas/workflows/preview.yml
name: Preview builds jobs: # ... existing fingerprint, get-build, build_android, build_ios, notify jobs deploy_web: name: Deploy web (preview) type: deploy

prod パラメーターがないため、これは本番以外のバージョンとしてデプロイされます。プッシュのたびに https://awesome-project--abc123.expo.app のような固有の URL が割り当てられます。

2

ワークフローの変更をリポジトリにプッシュする

preview.yml の変更をコミットして、GitHub リポジトリの main ブランチにプッシュします。EAS Workflows はデフォルトブランチからワークフローファイルを読み取るため、これによって変更が有効になります。

Terminal
git add .eas/workflows/preview.yml

git commit -m "Add web preview deploy job to preview workflow"

git push origin main

3

ワークフローをテストする

続いて、次のコマンドでプレビューワークフローを手動で実行します。

Terminal
eas workflow:run .eas/workflows/preview.yml

EAS ダッシュボードでは、プレビューワークフローの実行にビルドジョブと並んで deploy_web ジョブが表示されます。

Deploy web (preview) の下にある View Deployment リンクをクリックすると、デプロイされた web ビルドがブラウザーで開きます。

web の本番デプロイを追加する

第 6 章のステップ 1 の本番ワークフローは、新しい Git タグをプッシュしたときに実行され、ネイティブアプリのビルドまたはアップデートを行います。そのワークフローに deploy_web ジョブを追加して、アプリの新しいバージョンをリリースすると web 版も本番 URL 上で更新されるようにしましょう。

1

deploy_web ジョブを追加する

.eas/workflows/production.yml を開いて deploy_web ジョブを追加します。この新しいジョブは needs による依存関係を持たないため、既存のビルドジョブと並列に実行されます。

.eas/workflows/production.yml
name: Deploy to production on: push: tags: ['v*.*.*'] jobs: # ... existing fingerprint, get-build, build, update jobs ... deploy_web: name: Deploy web (production) type: deploy params: prod: true

上のワークフローでは、['v*.*.*'] が 3 つの数値からなる厳密なセマンティックバージョンに一致します。params.prod: true によって、web アプリが https://awesome-project.expo.app のような本番 URL にデプロイされます。

2

タグを作成してワークフローをテストする

ワークフローの変更をリポジトリの main ブランチにコミットします。

Terminal
git add .eas/workflows/production.yml

git commit -m "Add web production deploy to production workflow"

git push origin main

ワークフローを実行するには、新しいタグを作成してリポジトリにプッシュします。

Terminal
git tag v0.2.0

git push origin v0.2.0

これで v0.2.0 タグのリリースに合わせて本番ワークフローが実行されます。deploy_web ジョブが web ビルドを本番 URL にデプロイします。

まとめ

第 7 章:web デプロイ

静的な web エクスポートのために Expo プロジェクトを設定し、本番以外の web URL 用の deploy ジョブをプレビューワークフローに追加し、prod: true を指定した deploy ジョブを本番ワークフローに追加して、リリースのたびにネイティブのリリースと一緒に web ビルドも配信されるようにしました。

EAS Workflows を使いこなすための次のステップを学びましょう。

次へ:EAS Workflows を使いこなすための次のステップ