LoginSignup
9
11

More than 1 year has passed since last update.

GitHub ActionsでC#のビルド可否の確認とユニットテストを自動化する方法

Last updated at Posted at 2022-05-25

C#のプロジェクトをGitHubで管理しています。
そこでGitHub Actionsを使って、ビルドの可否確認とユニットテストを自動化する様にしたので、やり方を残しておこうと思います。

前提

まず、この方法は.Net6.0で作成されたプロジェクトを対象としてます。
.net core5以前でも問題ないと思いますが、コーティング規約などの静的チェックも行おうとすると現在は初期値では無効になっているはずのCA1801が有効化されてしまいビルドが通らないという現象が出てしまいます。
Microsoftのサポート的にも.net6が良いと思うので、自動化に伴い.net6で作成しています。

workflow設定

workflowのやり方については、GitHub上で書いていく方法もありますが、今回はローカルでVSCodeで書いています。

プロジェクトフォルダに.github/workflows/build.ymlを用意してください。
下記のコードを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されれば実行される様にしてあります。
ブランチを指定する事もできます。

その際は、以下の様にします。

build.yml
# 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に対して行っていますが、プルリクエストでも行えます。
その付近は、まだ学習中なので次回以降にします。

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11