C#のプロジェクトをGitHubで管理しています。
そこでGitHub Actionsを使って、ビルドの可否確認とユニットテストを自動化する様にしたので、やり方を残しておこうと思います。
前提
まず、この方法は.Net6.0で作成されたプロジェクトを対象としてます。
.net core5以前でも問題ないと思いますが、コーティング規約などの静的チェックも行おうとすると現在は初期値では無効になっているはずのCA1801が有効化されてしまいビルドが通らないという現象が出てしまいます。
Microsoftのサポート的にも.net6が良いと思うので、自動化に伴い.net6で作成しています。
workflow設定
workflowのやり方については、GitHub上で書いていく方法もありますが、今回はローカルでVSCodeで書いています。
プロジェクトフォルダに.github/workflows/build.yml
を用意してください。
下記のコードをbuild.yml
に書きます。
# GitHub Actionsの名前
name: Build .NET Core 6.0
# GitHub Actionsを実行させたい動作
on:
# 今回はpush時に実行させる
push:
# 自動化
jobs:
build:
# GitHub Actionsで動作させる仮想OS環境(今回はubuntuを指定)
runs-on: ubuntu-latest
# 自動化する動作
steps:
# プロジェクトをチェックアウトする
- name: checkout
uses: actions/checkout@v2
# .Net のRuntimeを仮想OSにインストールする
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
# インストール.netのバージョンを指定(今回は.net6.0を指定)
dotnet-version: 6.0.x
# プロジェクトで必要なライブラリなどをインストールする
- name: Restore dependencies
run: dotnet restore
# ビルドを行う(同時にコーティング規約の静的チェックを行う)
- name: DotNet Build Restore
run: dotnet build --no-restore /warnaserror
# ユニットテストを行う
- name: DotNet Unit Test
run: dotnet test
後は通常の流れでCommitしてPushを行えば、その度にGitHub Actionsが動き出します。
また、今回はブランチを問わずPushされれば実行される様にしてあります。
ブランチを指定する事もできます。
その際は、以下の様にします。
# GitHub Actionsの名前
name: Build .NET Core 6.0
# GitHub Actionsを実行させたい動作
on:
# 今回はpush時に実行させる
push:
# GitHub Actionsを実行させたいブランチを指定する(今回はdevelopを指定)
branches: [ develop ]
# 自動化
jobs:
build:
# GitHub Actionsで動作させる仮想OS環境(今回はubuntuを指定)
runs-on: ubuntu-latest
# 自動化する動作
steps:
# プロジェクトをチェックアウトする
- name: checkout
uses: actions/checkout@v2
# .Net のRuntimeを仮想OSにインストールする
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
# インストール.netのバージョンを指定(今回は.net6.0を指定)
dotnet-version: 6.0.x
# プロジェクトで必要なライブラリなどをインストールする
- name: Restore dependencies
run: dotnet restore
# ビルドを行う(同時にコーティング規約の静的チェックを行う)
- name: DotNet Build Restore
run: dotnet build --no-restore /warnaserror
# ユニットテストを行う
- name: DotNet Unit Test
run: dotnet test
今回はPushに対して行っていますが、プルリクエストでも行えます。
その付近は、まだ学習中なので次回以降にします。