Skip to main content

Azure 静的 Web アプリへのデプロイ

継続的デプロイ (CD) ワークフローの一部として静的 Web アプリAzure Web アプリをデプロイする方法について説明します。

この記事の内容

前提条件

GitHub Actionsワークフローを作成する前に、まず以下のセットアップのステップを完了しておかなければなりません。

  1. デプロイ ソースの [その他] オプションを使用して、Azure静的 Web アプリを作成します。 詳細については、Azureドキュメントの「Quickstart: Azure ポータルでの最初の静的サイトのビルドを参照してください。

  2. 静的 Web アプリのデプロイ トークンの値を使用して、 という名前のシークレットを作成します。 デプロイ トークンの検索方法についての詳細は、Azure ドキュメントの「Azure Static Web Apps のデプロイ トークンのリセット」を参照してください。

ワークフローの作成

必要な環境を整えたら、ワークフローの作成に進むことができます。

次のワークフロー例は、main ブランチへのプッシュがある場合、または main をターゲットとするプル要求が開かれる、同期される、または再度開かれたときに、Azure静的 Web アプリをビルドしてデプロイする方法を示しています。 また、 がターゲットとして設定されている pull request が閉じている場合は、対応する実稼働前デプロイが、ワーフクローによって破棄されます。

ワークフロー キーで、次の値を変更します。

  • をクライアント コードの場所に
  • API ソースコードの場所へ移動してください。 が関連していない場合は、変数およびそれが使用されている行を削除することができます。
  • クライアントコードのビルド出力先の場所へ

これらの値の詳細については、Azureドキュメントの「Azure Static Web Apps Build の構成」を参照してください。

YAML
# このワークフローはGitHubによって認定されていないアクションを使用します。
# それらはサードパーティによって提供され、
# 別個の利用規約、プライバシーポリシー、
# ドキュメントを参照してください。

# GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。
# 新しいバージョンを取得するには、SHA を更新する必要があります。
# タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。

name: Deploy web app to Azure Static Web Apps

env:
  APP_LOCATION: "/" # location of your client code
  API_LOCATION: "api" # location of your api source code - optional
  OUTPUT_LOCATION: "build" # location of client code build output

on:
  push:
    branches:
      - main
  pull_request:
    types: [opened, synchronize, reopened, closed]
    branches:
      - main

permissions:
  issues: write
  contents: read
  pull-requests: write

jobs:
  build_and_deploy:
    if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
    runs-on: ubuntu-latest
    name: Build and Deploy
    steps:
      - uses: actions/checkout@v5
        with:
          submodules: true
      - name: Build And Deploy
        uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9
        with:
          azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          action: "upload"
          app_location: ${{ env.APP_LOCATION }}
          api_location: ${{ env.API_LOCATION }}
          output_location: ${{ env.OUTPUT_LOCATION }}

  close_pull_request:
    if: github.event_name == 'pull_request' && github.event.action == 'closed'
    runs-on: ubuntu-latest
    name: Close Pull Request
    steps:
      - name: Close Pull Request
        uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9
        with:
          azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
          action: "close"

参考資料

  • 元のワークフロー テンプレートについては、GitHub Actions リポジトリの を参照してください。
  • Web アプリのデプロイに使用されるアクションは、公式の Azure Azure/static-web-apps-deploy アクションです。
  • AzureにデプロイGitHubアクション ワークフローのその他の例については、actions-workflow-samples リポジトリを参照してください。