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章「テストとデプロイ」は完了です。

2025-05-24

下田 昌平

開発に関するインプットをアウトプットしています。