クイックスタート: ビルド検証の GitHub ワークフローを作成する
このクイックスタートでは、GitHub で .NET ソース コードのコンパイルを検証する GitHub ワークフローを作成する方法について学習します。 .NET コードのコンパイルは、コードの更新プログラムの品質を確保するために実行できる最も基本的な検証手順の 1 つです。 コードがコンパイル (またはビルド) されない場合、これは簡単な抑止力であり、コードの修正が必要かどうかの明確なサインになります。
前提条件
- GitHub アカウント。
- .NET ソース コード リポジトリ。
ワークフロー ファイルを作成する
GitHub リポジトリで、 .github/workflows ディレクトリに新しい YAML ファイルを追加します。 ワークフローの目的を明確に示す、わかりやすいファイル名を選択します。 詳細については、「ワークフロー ファイル」を参照してください。
重要
GitHub では、ワークフロー構成ファイルを .github/workflows ディレクトリ内に配置する必要があります。
ワークフロー ファイルにより、通常、jobs.<job_id>/steps[*]
を介して 1 つ以上の GitHub Action の構成が定義されます。 詳細については、「GitHub Actions のワークフロー構文」を参照してください。
build-validation.yml という名前の新しいファイルを作成し、次の YML の内容をコピーして貼り付けます。
name: build
on:
push:
pull_request:
branches: [ main ]
paths:
- '**.cs'
- '**.csproj'
env:
DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
jobs:
build:
name: build-${{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: build
で名前が定義され、"ビルド" がワークフローの状態バッジに表示されます。name: build
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: name: build-${{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
build-<os>
という名前の 1 つのジョブがあります。ここで、<os>
はstrategy/matrix
のオペレーティング システム名です。name
とruns-on
の要素は、matrix/os
の各値に対して動的です。 これは、Ubuntu、Windows、macOS の最新バージョンで実行されます。actions/setup-dotnet@v3
GitHub Action は、DOTNET_VERSION
環境変数から指定したバージョンで .NET SDK を設定するために必要です。(省略可能).NET ワークロードによっては、追加の手順が必要になる場合があります。 この例では省略していますが、アプリをビルドするために追加のツールのインストールが必要になる場合があります。
- たとえば、ASP.NET Core Blazor WebAssembly アプリケーションを Ahead-of-Time (AoT) コンパイルを使用してビルドする場合は、復元、ビルド、または発行の各操作を実行する前に、対応するワークロードをインストールします。
- name: Install WASM Tools Workload run: dotnet workload install wasm-tools
.NET ワークロードの詳細については、
dotnet workload install
を参照してください。dotnet restore
コマンドが呼び出されます。dotnet build
コマンドが呼び出されます。
この場合、ワークフロー ファイルは、アプリケーションをビルドするためのさまざまな手順を表すコンポジションと考えてください。 多くの .NET CLI コマンドが用意されており、そのほとんどが GitHub Action のコンテキストで使用できます。
ワークフロー状態バッジを作成する
GitHub リポジトリでは、通常、リポジトリ ディレクトリのルートに README.md ファイルを含めます。 同様に、さまざまなワークフローの最新の状態を報告することもお勧めします。 すべてのワークフローでは、README.md ファイル内で視覚に訴える状態バッジを生成できます。 ワークフロー状態バッジを追加するには、次の手順に従います。
GitHub リポジトリで、 [アクション] ナビゲーション オプションを選択します。
すべてのリポジトリ ワークフローが左側に表示されます。目的のワークフローと省略記号 ( [...] ) ボタンを選択します。
- 省略記号 ( [...] ) ボタンをクリックすると、選択したワークフローのメニュー オプションが展開されます。
[Create status badge](状態バッジの作成) メニュー オプションを選択します。
[Copy status badge Markdown](状態バッジ Markdown のコピー) ボタンを選択します。
Markdown を README.md ファイルに貼り付け、ファイルを保存して、変更をコミットしてプッシュします。
詳細については、「ワークフロー状態バッジを追加する」を参照してください。
ビルド ワークフローの状態バッジの例
成功 | Failing | 状態なし |
---|---|---|
関連項目
次のステップ
.NET