はじめに
現在、コーディングの様子をリアルタイムで配信・共有できるオンラインエディタ、「Live Share Editor」をASP.NET Core + SignalR + Reactで書き直す作業をしています。アプリケーションはAzure App Service Web Appsにデプロイしているのですが、従来はApp ServiceのGitHub連携デプロイ機能を使っていました。これをGitHub Actionsに置き換えたので、手順を紹介しようと思います。
live-share-editor.azurewebsites.net
発行プロファイルのダウンロード
Azure Portalからアプリの発行プロファイルをダウンロードします。
デプロイするアプリの概要ページを開き、上のメニューから「発行プロファイルの取得」をクリックします。
クリックすると、<app name>.PublishSettingsというファイルがダウンロードされます。
Secretsの設定
先程ダウンロードしたPublishSettingsファイルをテキストエディタで開きます。
その後、GitHubのリポジトリを開き、Settings > Secretsの「Add a new secret」をクリックして新しいsecretを追加します。
今回は、以下のように設定しました。
GitHub Actionsの設定
GitHub Actionsの設定ファイルであるyamlファイルを記述していきます。
今回の設定は以下のようにしました。
v*
のタグが打たれたときにビルドとデプロイを行う- .Net Coreのバージョンは3.1
- Node.jsのバージョンは10
- GitHub Actionsの設定は
github-actions
ブランチで行い、このブランチにpushされた場合もビルドとデプロイを行う(デバッグ用)
記述したbuild-and-deploy-to-azure.ymlはこちらです。
name: Build and Deploy to Azure on: push: branches: - github-actions # for debug tags: - v* env: AZURE_WEBAPP_NAME: live-share-editor AZURE_WEBAPP_PACKAGE_PATH: 'build' NODE_VERSION: '10.x' jobs: build-and-deploy: name: Build and Deploy runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: dotnet-version: 3.1.100 - name: Publish with dotnet run: dotnet publish -c Release -o ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} - name: Deploy to Azure WebApp uses: azure/webapps-deploy@v1 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
ビルドステータスバッジの設定
README.mdなどにビルドのステータスをバッジとして表示する際にはリポジトリのActions > <workflow name> > Create status badgeからバッジのMarkdownのコードをコピーできます。
これをそのままMarkdownファイルにペーストすればバッジが表示されます。
おわりに
AzureへのデプロイにはAzure Pipelinesが使われることが多いようですが、GitHub Actionsでも問題なくできました。これくらいであればAzure PipelinesでもGitHub Actionsでもどちらでも問題なくできるかと思います。
GitHub Actionsについては、こちらの記事が詳しく書かれているのでおすすめです。
knowledge.sakura.ad.jp