このクイック スタートでは、ソース コードから .NET アプリを発行する GitHub ワークフローを作成する方法について説明します。 GitHub から宛先に .NET アプリを自動的に発行することは、継続的デプロイ (CD) と呼ばれます。 アプリケーションを発行するには、多くの宛先が考えられます。このクイックスタートでは、Azure に発行します。
[前提条件]
- GitHub アカウント。
- .NET ソース コード リポジトリ。
- アクティブなサブスクリプションを持つ Azure アカウント。 無料でアカウントを作成できます。
- ASP.NET Core Web アプリ。
- Azure App Service リソース。
発行プロファイルを追加する
アプリを Azure に発行するには、アプリケーションの App Service インスタンスの Azure portal を開きます。 リソースの[概要]で [発行プロファイルの取得]を選択し、.PublishSettingファイルをローカルに保存します。
Warnung
発行プロファイルには、Azure App Service リソースにアクセスするための資格情報などの機密情報が含まれています。 この情報は常に非常に慎重に扱う必要があります。
GitHub リポジトリで 、[設定] に移動し、左側のナビゲーション メニューから [シークレット ] を選択します。 [新しいリポジトリ シークレット] を選択して、新しいシークレットを追加します。
AZURE_PUBLISH_PROFILE] として「」と入力し、発行プロファイルの XML コンテンツを [値] テキスト領域に貼り付けます。 [ シークレットの追加] を選択します。 詳細については、「 暗号化されたシークレット」を参照してください。
ワークフロー ファイルを作成する
GitHub リポジトリで、. github/workflows ディレクトリに新しい YAML ファイルを追加します。 わかりやすいファイル名を選択します。ワークフローの目的を明確に示します。 詳細については、「 ワークフロー ファイル」を参照してください。
Important
GitHub では、ワークフローコンポジション ファイルを .github/workflows ディレクトリ内に配置する必要があります。
ワークフロー ファイルは、通常、 jobs.<job_id>/steps[*]を介して 1 つ以上の GitHub アクションの構成を定義します。 詳細については、「 GitHub Actions のワークフロー構文」を参照してください。
publish-app.ymlという名前の新しいファイルを作成し、次の YML の内容をコピーして貼り付けます。
name: publish
on:
push:
branches: [ production ]
env:
AZURE_WEBAPP_NAME: DotNetWeb
AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies
run: dotnet restore
- name: Build
run: |
cd DotNet.WebApp
dotnet build --configuration Release --no-restore
dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true
- name: Test
run: |
cd DotNet.WebApp.Tests
dotnet test --no-restore --verbosity normal
- uses: azure/webapps-deploy@v2
name: Deploy
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'
上記のワークフロー構成では、次の操作を行います。
name: publishは名前を定義し、"発行" はワークフローの状態バッジに表示されます。name: publishonノードは、ワークフローをトリガーするイベントを示します。on: push: branches: [ production ]-
pushブランチでproductionが発生したときにトリガーされます。
-
envノードは、名前付き環境変数 (env var) を定義します。env: AZURE_WEBAPP_NAME: DotNetWeb AZURE_WEBAPP_PACKAGE_PATH: '.' # Set this to the path to your web app project, defaults to the repository root: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use- 環境変数
AZURE_WEBAPP_NAMEには、DotNetWeb値が割り当てられます。 - 環境変数
AZURE_WEBAPP_PACKAGE_PATHには、'.'値が割り当てられます。 - 環境変数
DOTNET_VERSIONには、'6.0.401'値が割り当てられます。 環境変数は後で参照され、dotnet-versionGitHub アクションのactions/setup-dotnet@v3を指定します。
- 環境変数
jobsノードは、ワークフローが実行する手順を構築します。jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Install dependencies run: dotnet restore - name: Build run: | cd DotNet.WebApp dotnet build --configuration Release --no-restore dotnet publish -c Release -o ../dotnet-webapp -r linux-x64 --self-contained true /p:UseAppHost=true - name: Test run: | cd DotNet.WebApp.Tests dotnet test --no-restore --verbosity normal - uses: azure/webapps-deploy@v2 name: Deploy with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/dotnet-webapp'- Ubuntu の最新バージョンで実行される
publishという名前のジョブが 1 つあります。 -
actions/setup-dotnet@v3GitHub アクションは、DOTNET_VERSION環境変数から指定されたバージョンで .NET SDK を設定するために使用されます。 -
dotnet restoreコマンドが呼び出されます。 -
dotnet buildコマンドが呼び出されます。 -
dotnet publishコマンドが呼び出されます。 -
dotnet testコマンドが呼び出されます。 -
azure/webapps-deploy@v2GitHub アクションは、指定されたpublish-profileとpackageを使用してアプリをデプロイします。-
publish-profileは、AZURE_PUBLISH_PROFILEリポジトリ シークレットから割り当てられます。
-
- Ubuntu の最新バージョンで実行される
ワークフローステータスバッジを作成する
GitHub リポジトリの一般的な命名法では、リポジトリ ディレクトリのルートに README.md ファイルがあります。 同様に、さまざまなワークフローの最新の状態を報告することをお勧めします。 すべてのワークフローでステータス バッジを生成できます。これは、 README.md ファイル内で視覚的に魅力的です。 ワークフローステータスバッジを追加するには:
GitHub リポジトリから、[ アクション] ナビゲーション オプションを選択します。
すべてのリポジトリ ワークフローが左側に表示され、目的のワークフローと省略記号 (...) ボタンを選択します。
- 省略記号 (...) ボタンは、選択したワークフローのメニュー オプションを展開します。
[状態バッジの作成] メニュー オプションを選択します。
「ステータスバッジのマークダウンをコピー」ボタンを選択します。
Markdown を README.md ファイルに貼り付け、ファイルを保存し、変更をコミットしてプッシュします。
詳細については、「 ワークフローステータスバッジの追加」を参照してください。
発行ワークフローの状態を示すバッジの例
| パッシング | 失敗 | 状態なし |
|---|---|---|
|
|
|
|
こちらも参照ください
次のステップ
.NET