回答:
Travis CI がC#をサポートするようになりました。そのページから自由に引用:
概観
C#、F#、およびVisual Basicプロジェクトの設定は次のようになります。
language: csharp
solution: solution-name.sln
mono:
- latest
- 3.12.0
- 3.10.0
脚本
デフォルトでは、Travisはxbuild solution-name.slnを実行します。Xbuildは、MicrosoftのMSBuildツールの実装になるように設計されたビルドツールです。これをオーバーライドするには、次のようにスクリプト属性を設定します。
language: csharp
solution: solution-name.sln
script: ./build.sh
NuGet
デフォルトでは、Travisはnuget restore solution-name.slnを実行し、ソリューションファイルからすべてのNuGetパッケージを復元します。これを上書きするには、次のようにインストール属性を設定します。
language: csharp
solution: solution-name.sln
install:
- sudo dosomething
- nuget restore solution-name.sln
ダニエルニクソンの答えを見るこれを行うための公式の方法については、を。
可能です。
自分のモノマシンで、ターミナルを使用しcd
て、ソリューションディレクトリに移動し、コマンドを実行しますxbuild
。これは自動的に機能する場合と機能しない場合があります。これは、Visual Studioで使用した機能の中で、モノラルの調整が必要な場合があるためです。
注意点:
.csproj
大文字と小文字がLinuxと一致していることを確認してください。export EnableNuGetPackageRestore=true
実行する前に必要がありますxbuild
。mozroots --import --sync
ます。インストールに使用してください。nuget.*
は、NuGet.*
は、.csproj参照の、さまざまなバージョンのnugetに存在することがわかっています。.fsproj
追加することによって、非Windowsマシン上でVS2012の設定をトリガするために'$(VisualStudioVersion)' == '11.0' Or $(OS) != 'Windows_NT'
参照の例を。Unable to find framework corresponding to the target framework moniker '.NETPortable,Version=v4.0,Profile=ProfileX'. Framework assembly references will be resolved from the GAC, which might not be the intended behavior.
使用のプラットフォームの条件(下に述べたモノ3.0.11またはそれ以前)、または3.1.2にアップグレードしてください。<PropertyGroup Condition="$(OS) == 'Windows_NT'"> <TargetFrameworkProfile>Profile46</TargetFrameworkProfile> </PropertyGroup>
かCondition="$(OS) != 'Windows_NT'
、モノ用にします。あなたのマイレージは異なる場合があります。実例を参照してください。.ci/nunit.sh
リポジトリのルートにチェックインされた、nunitテスト用の独自のシェルスクリプトです。そのため、nugetで必要なnunit-consoleバージョンをインストールし、カテゴリのさまざまな包含/除外を構成することもできます。走行距離はさまざまですが、この手法はxunitなどでも機能します。または、xbuildまたはfakeを使用して独自の方法を実行します。
#!/bin/sh -x
mono --runtime=v4.0 .nuget/NuGet.exe install NUnit.Runners -Version 2.6.1 -o packages
runTest(){
mono --runtime=v4.0 packages/NUnit.Runners.2.6.1/tools/nunit-console.exe -noxml -nodots -labels -stoponerror $@
if [ $? -ne 0 ]
then
exit 1
fi
}
#This is the call that runs the tests and adds tweakable arguments.
#In this case I'm excluding tests I categorized for performance.
runTest $1 -exclude=Performance
exit $?
最新のモノをテストするには、Macホストを使用するのが最も簡単です(language:objective-c
Mono v3.1.2以降を使用してターゲットをMacでディストリビューションをDMGからPKGに変更したため、インストールは非常に簡単です。このテンプレートは、ポータブルクラスライブラリ、.NETをサポートする必要があります。 4.5.1、FSharp 3.1。
language: objective-c
env:
global:
- EnableNuGetPackageRestore=true
matrix:
- MONO_VERSION="3.8.0"
before_install:
- wget "http://download.mono-project.com/archive/${MONO_VERSION}/macos-10-x86/MonoFramework-MDK-${MONO_VERSION}.macos10.xamarin.x86.pkg"
- sudo installer -pkg "MonoFramework-MDK-${MONO_VERSION}.macos10.xamarin.x86.pkg" -target /
script:
- xbuild
- .ci/nunit.sh Tests/bin/Debug/Tests.dll
Macホストを使用して、Monoの複数のバージョンのビルドマトリックスをセットアップするのは簡単です。以下のスクリプトを参照してください
language: objective-c
env:
global:
- EnableNuGetPackageRestore=true
matrix:
- MONO_VER="2.10.11"
- MONO_VER="3.0.12"
before_install:
- wget "http://download.mono-project.com/archive/${MONO_VER}/macos-10-x86/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.dmg"
- hdid "MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.dmg"
- sudo installer -pkg "/Volumes/Mono Framework MDK ${MONO_VER}/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.pkg" -target /
script:
- xbuild
- .ci/nunit.sh Tests/bin/Debug/Tests.dll
これで、c#プロジェクトでtravisを使用できるようになります。
sudo installer -pkg
ますが、ではありません。それを修正するのを手伝ってくれませんか?ありがとうございました!travis-ci.org/Aimeast/TestForFirst/builds/13814315
language: objective-c
そのテンプレートにはOS Xホストを使用するために必要です。
それが重要なポイントです。プロジェクトはMonoで動作する必要があります。これは主にライブラリスタイルのプロジェクト(AWS SDK .NETが良い例です)で機能しますが、より多くの開発努力と訓練が必要です。WPFアプリケーション、Azureクラウドサービス、Windows Phone / Storeアプリ、さらにはASP.NET Web APIなどのWindowsプラットフォーム向けのプロジェクトを開発している場合、Linux構築環境は機能しません。
AppVeyor CIは、Windowsプラットフォーム向けのホスト型継続的インテグレーションサービスであり、オープンソースプロジェクトには無料です。Windows用のTravis CIのようなものです!
VS.NETソリューション、カスタムMSBuildプロジェクト、PSake、またはバッチファイルのPowerShellスクリプトのビルドプロセスを設定できます。さらに、AppVeyorにはアーティファクト管理およびデプロイメントフレームワークが組み込まれています。
すでに述べたように、Travis CIはC#のベータサポートを備えています。使用するのは簡単ではありません。また、nunitは非常に簡単に統合できます。次に、nunitテストを実行し、少なくとも1つの単体テストが失敗した場合にビルドを失敗とマークする.travis.ymlファイルの小さな例を示します。
language: csharp
solution: ./src/yoursolution.sln
install:
- sudo apt-get install nunit-console
- nuget restore ./src/yoursolution.sln
script:
- xbuild ./src/yoursolution.sln
- nunit-console ./src/SomeLibrary.Tests/bin/Debug/SomeLibrary.Tests.dll
sudo: required
したのは最後だけです。魅力のように機能します。
GitHubのF#でTravis CIをFAKEとパケットで使用する場合は、F#ProjectScaffoldをお勧めします。