Travis CI - Build .NET project

Travis CI 內建支援 C、C++、Clojure、Erlang、Go、Groovy、Haskell、Java、Python、Ruby 等語言,卻沒有支援 .Net 的,這表示官方並不特別的去做 .Net 語言的支援。然而 Travis CI 具備有相當程度的彈性,經由設定能在建置前先進行套件的安裝,因此我們還是能透過安裝 Mono 套件去建置 .Net 的專案。

在設定檔的撰寫上,Language 這邊指定語言為 C ,因為前面提到的 Travis CI 並不支援 C# 。

language: c

install 這邊透過 apt-get 安裝 mono-devel 、 mono-gmcs 。

install:
  - sudo apt-get install mono-devel mono-gmcs

script 這邊直接叫用 xbuild 去建置我們的專案或是方案就可以了。

script:
  - xbuild Source/LevelUp.Extensions.Core/LevelUp.Extensions.Core.csproj
  - xbuild Source/LevelUp.Extensions.Control/LevelUp.Extensions.Control.csproj

整個設定檔撰寫起來會像下面這個樣子:

1
2
3
4
5
6
7
8
9
 Travis CI Integration

language: c

install:
- sudo apt-get install mono-devel mono-gmcs
script:
- xbuild Source/LevelUp.Extensions.Core/LevelUp.Extensions.Core.csproj
- xbuild Source/LevelUp.Extensions.Control/LevelUp.Extensions.Control.csproj

若有單元測試的需求,這邊可改用 Nunit 去做測試。設定檔這邊只要在安裝 Mono 時順帶安裝 nunit-console ,然後在 script 那邊透過 nunit-console 進行測試即可。

1
2
3
4
5
6
7
8
9
10
 Travis CI Integration

language: c

install:
- sudo apt-get install mono-devel mono-gmcs nunit-console
script:
- xbuild Source/LevelUp.Extensions.Core/LevelUp.Extensions.Core.csproj
- xbuild Source/LevelUp.Extensions.Control/LevelUp.Extensions.Control.csproj
- nunit-console Bin/LevelUp.Extensions.Test.dll -exclude Integration,NotWorkingOnMono