クイックスタート: テスト検証の GitHub ワークフローを作成する
このクイックスタートでは、GitHub ワークフローを作成して .NET ソース コードをテストする方法について説明します。 GitHub 内で .NET コードを自動的にテストする方法は、継続的インテグレーション (CI) と呼ばれます。CI では、プル要求またはソースの変更により、ワークフローがトリガーされて実行されます。 ソース コードのビルドと同時に、テストによって、コンパイルされたソース コードが作成者の意図したとおりに機能することが保証されます。 多くの場合、単体テストは、ソース コードに対する変更の有効性を確保するために、即時フィードバック ループとして機能します。
前提条件
- GitHub アカウント。
- .NET ソース コード リポジトリ。
ワークフロー ファイルを作成する
GitHub リポジトリで、 .github/workflows ディレクトリに新しい YAML ファイルを追加します。 ワークフローの目的を明確に示す、わかりやすいファイル名を選択します。 詳細については、「ワークフロー ファイル」を参照してください。
重要
GitHub では、ワークフロー構成ファイルを .github/workflows ディレクトリ内に配置する必要があります。
ワークフロー ファイルにより、通常、jobs.<job_id>/steps[*]
を介して 1 つ以上の GitHub Action の構成が定義されます。 詳細については、「GitHub Actions のワークフロー構文」を参照してください。
build-and-test.yml という名前の新しいファイルを作成し、次の YML の内容をコピーして貼り付けます。
name: build and test
on:
push:
pull_request:
branches: [ main ]
paths:
- '**.cs'
- '**.csproj'
env:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
build-and-test:
name: build-and-test-${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-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: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
上記のワークフロー構成:
name: build and test
で名前が定義され、"ビルドとテスト" がワークフローの状態バッジに表示されます。name: build and test
on
ノードは、ワークフローをトリガーするイベントを示します。on: push: pull_request: branches: [ main ] paths: - '**.cs' - '**.csproj'
- .cs または .csproj ファイル拡張子で終わるいずれかのファイルが変更されている
main
ブランチでpush
またはpull_request
が発生するとトリガーされます。
- .cs または .csproj ファイル拡張子で終わるいずれかのファイルが変更されている
env
ノードにより名前付き環境変数 (env var) が定義されます。env: DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
- 環境変数
DOTNET_VERSION
に値'6.0.401'
が割り当てられます。 この環境変数は、actions/setup-dotnet@v3
GitHub Action のdotnet-version
を指定するために後で参照します。
- 環境変数
jobs
ノードにより、ワークフローの手順が構築されます。jobs: build-and-test: name: build-and-test-${{matrix.os}} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-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: dotnet build --configuration Release --no-restore - name: Test run: dotnet test --no-restore --verbosity normal
build-<os>
という名前の 1 つのジョブがあります。ここで、<os>
はstrategy/matrix
のオペレーティング システム名です。name
とruns-on
の要素は、matrix/os
の各値に対して動的です。 これは、Ubuntu、Windows、macOS の最新バージョンで実行されます。actions/setup-dotnet@v3
GitHub Action は、DOTNET_VERSION
環境変数から指定したバージョンで .NET SDK を設定するために使用されます。dotnet restore
コマンドが呼び出されます。dotnet build
コマンドが呼び出されます。dotnet test
コマンドが呼び出されます。
ワークフロー状態バッジを作成する
GitHub リポジトリでは、通常、リポジトリ ディレクトリのルートに README.md ファイルを含めます。 同様に、さまざまなワークフローの最新の状態を報告することもお勧めします。 すべてのワークフローでは、README.md ファイル内で視覚に訴える状態バッジを生成できます。 ワークフロー状態バッジを追加するには、次の手順に従います。
GitHub リポジトリで、 [アクション] ナビゲーション オプションを選択します。
すべてのリポジトリ ワークフローが左側に表示されます。目的のワークフローと省略記号 ( [...] ) ボタンを選択します。
- 省略記号 ( [...] ) ボタンをクリックすると、選択したワークフローのメニュー オプションが展開されます。
[Create status badge](状態バッジの作成) メニュー オプションを選択します。
[Copy status badge Markdown](状態バッジ Markdown のコピー) ボタンを選択します。
Markdown を README.md ファイルに貼り付け、ファイルを保存して、変更をコミットしてプッシュします。
詳細については、「ワークフロー状態バッジを追加する」を参照してください。
テスト ワークフローの状態バッジの例
成功 | Failing | 状態なし |
---|---|---|
関連項目
次のステップ
.NET