概要
Visual Studio Team Servicesを使えばすぐにCIできる環境が手に入るのに、という声はさておき。
GitLabが好きな私は、GitLabでやる方法を探したくなったというわけ。
.NETCoreのUnit Testing using dotnet test Sampleを題材に、これをビルドしたりテストするのをGitLab上でやることを目指します。
.gitlab-ci.ymlの書き方をメインにご覧ください。
対象物の取得
Unit Testing using dotnet test Sample
ビルド、テストする対象が必要なので、こちらをcloneして、テストされるプロジェクト、テストプロジェクトを取得します。
gitlab-ci
次に、ビルド、テストする処理を書いた.gitlab-ci.ymlファイルを作成し、GitLabレポジトリにコミットしましょう。
Building Docker Images for .NET Core Applicationsによると、build scenariosにはsdkがついたイメージを使うと良いようなので、microsoft/dotnet:sdkイメージを使うことにしました。
ビルドステージでは、ビルドを。テストステージでは、PrimeService.Testsでテストを実行するという2つのジョブ構成です。
テストプロジェクトの方をビルドすると、テストされる側のプロジェクト(ここではPrimeServiceプロジェクト)もビルドされるので、テストの方だけビルドする例としました。
image: microsoft/dotnet:sdk
stages:
- build
- test
job1:
stage: build
script:
- dotnet restore
- cd test/PrimeService.Tests
- dotnet build
only:
- master
tags:
- docker
job2:
stage: test
script:
- dotnet restore
- cd test/PrimeService.Tests
- dotnet test
only:
- master
tags:
- docker
commit & push
後はリポジトリ側で変更があると、勝手にCIが走るので、Pipelineから実行結果を確認できます。