はんなりと、ゆるやかに

アジャイル、スクラムが好きが日々から学んだことをアウトプット

GitHub Actions で ビルド→テストを実行する(Windows+C#+NUnit)

はじめに

GitHub Enterprise 3.0.0 で GitHub Enterprise にもGitHub Actions が搭載されました。これをきっかけに勉強を始めていきます。
docs.github.com

今回はGitHub Acionsで Windows + Visual Studio + C# + nunit でビルドからテストまで実行してみます。実行の手順と設定ファイルの説明をまとめます。

GitHub Actionsとは

GitHub Actions とは CI/CD を実現する機能です。CI/CDと言えば Jenkins や CircleCI が有名ですね。 Jenkins や CircleCI は別サービスですので新たに環境構築したり、登録する必要があります。GitHub Actions を使えばGitHub だけでCI/CDを実現できます。

github.co.jp

導入手順

1 リポジトリの用意

事前にGitHubのアカウントとリポジトリを用意しましょう。以下は今回の勉強用に作成したリポジトリです。
github.com

2 GitHub Actions 専用のYAMLファイルを用意

「.github/workflows/」 のフォルダを作成し、YAMLファイルを配置します。これで設定が完了です。内容は「ビルドしてテストを実行する」です。「ビルドしてテストを実行する」のような一連のプロセスはワークフローと呼びます。

name: MSBuild

on: push

jobs:
  build:
    runs-on: windows-2019
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Add msbuild to PATH
        uses: microsoft/setup-msbuild@v1.0.2

      - run: dotnet build
      - run: dotnet test

3 実行結果を確認する

上記の設定で push のたびにワークフローが実行されています。実行結果はActionsタブで確認できます。
f:id:iucstscui:20210327200728p:plain

一覧の中から特定の実行結果を選ぶと詳細ログが確認できます。
成功のログ
f:id:iucstscui:20210327201022p:plain
失敗のログ
f:id:iucstscui:20210327201113p:plain

設定ファイルの説明

on: push

設定するワークフローの開始トリガーを設定します。この設定は「push」をトリガーに実行されます。設定できる文字列は下記ページが参考になります。
docs.github.com

    runs-on: windows-2019

実行するOSを設定します。設定できるOSは下記ページが参考になります。
docs.github.com

      - name: Checkout
        uses: actions/checkout@v2

actions/checkout はワークフローからリポジトリにアクセスできるようにするアクションです。
github.com

      - name: Add msbuild to PATH
        uses: microsoft/setup-msbuild@v1.0.2

microsoft/setup-msbuildmsbuild のコマンドを使えるようにするアクションです。
github.com

      - run: dotnet build
      - run: dotnet test

run はOSのCLIを操作するコマンドです。dotnet build でビルドし、dotnet test でテストを実行しています。