CI/CDでBlazorアプリを自動デプロイ|ASP.NET×Blazor入門 12.3
12.3 CI/CDによるビルドと自動展開
アプリケーションを手動でデプロイする方法は簡単ですが、継続的に開発・運用していくには、CI/CD(継続的インテグレーション / 継続的デリバリー)の仕組みが欠かせません。 このセクションでは、GitHub Actionsを使って、Blazorアプリを自動的にビルド&Azureへデプロイする方法を紹介します。
CI/CDとは?
- CI(Continuous Integration):コードの変更を自動でテスト・ビルド
- CD(Continuous Deployment/Delivery):ビルド成果物を自動的に本番環境へ展開
GitHubリポジトリにコードを push するだけで、デプロイまでが一貫して行われるため、運用の効率化・品質向上・ヒューマンエラーの防止に繋がります。
前提条件
- GitHubリポジトリにアプリケーションコードを push している
- Azure App Service が作成済み
- Azure CLI または Azure Portal から 発行プロファイル (.PublishSettings) を取得済み
GitHub Actions ワークフローファイルの例
.github/workflows/deploy.yml というファイルを作成し、以下のように設定します:
name: Deploy to Azure
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
- name: Build app
run: dotnet publish -c Release -o publish
- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v2
with:
app-name: 'my-blazor-app'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: publish
Azureの発行プロファイルは、GitHubの「Settings」→「Secrets」→「Actions」から AZURE_WEBAPP_PUBLISH_PROFILE として登録しておきましょう。
WASMアプリの場合の補足
- Blazor WASMは
wwwrootに静的ファイルとしてビルドされるため、dotnet publishの出力先に注意 - Web.config の
fallback設定を含める
CI/CDによるメリット
- 開発速度の向上
- デプロイミスの削減
- 複数人チームでの安定運用
これで、push するだけで Azure にアプリが自動的に公開される環境が整いました。 チーム開発でもプロダクション運用でも、CI/CDは強力な武器になります。
これで、本書の第12章「テストとデプロイ」は完了です。
下田 昌平
開発に関するインプットをアウトプットしています。検索ログ
開発・技術相談
システム開発や技術検証、要件定義の作成、アーキテクチャ設計、 テスト設計、運用設計まで、一気通貫で支援しています。 企画段階の「まず相談したい」レベルから、実装・運用まで 幅広く対応できますので、お気軽にお問い合わせください。
お問い合わせ