Le service d'intégration continue Travis CI prend officiellement en charge de nombreux langages , mais pas C # ou F #.
Puis-je l'utiliser avec mes projets .net?
Travis CI prend désormais en charge C # . Citant généreusement à partir de cette page:
Aperçu
La configuration des projets C #, F # et Visual Basic ressemble à ceci:
language: csharp
solution: solution-name.sln
mono:
- latest
- 3.12.0
- 3.10.0
Scénario
Par défaut, Travis exécutera xbuild nom-solution.sln. Xbuild est un outil de construction conçu pour être une implémentation de l'outil MSBuild de Microsoft. Pour remplacer cela, vous pouvez définir l'attribut de script comme ceci:
language: csharp
solution: solution-name.sln
script: ./build.sh
NuGet
Par défaut, Travis exécutera nuget restore solution-name.sln, qui restaure tous les packages NuGet à partir de votre fichier de solution. Pour remplacer cela, vous pouvez définir l'attribut d'installation comme ceci:
language: csharp
solution: solution-name.sln
install:
- sudo dosomething
- nuget restore solution-name.sln
Voir la réponse de danielnixon pour la manière officielle de le faire maintenant.
C'est possible.
1. Votre projet doit fonctionner sur Mono
Sur votre propre machine mono, en utilisant le terminal,
cd
dans votre répertoire de solution et en exécutant la commandexbuild
. Cela peut fonctionner automatiquement, ou non, car certaines fonctionnalités que vous avez utilisées dans Visual Studio nécessitent quelques ajustements en mono.Choses à surveiller:
.csproj
Linux a des chemins sensibles à la casse là où Windows ne le fait pas.export EnableNuGetPackageRestore=true
avant de s'exécuterxbuild
si votre projet se rétablit automatiquement.mozroots --import --sync
pour les installer.nuget.*
au lieu deNuGet.*
références dans votre .csproj, on sait qu'elles existent dans différentes versions de nuget..fsproj
pour déclencher la configuration VS2012 sur des machines non Windows en ajoutant'$(VisualStudioVersion)' == '11.0' Or $(OS) != 'Windows_NT'
voir l' exemple .Mono 3.1.12, 3.2.4 et versions ultérieures
Mono 3.0.12
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.
utilisation de la plate-forme (mentionnées sous Mono 3.0.11 ou version antérieure ) ou passez à la version 3.1.2.Mono 3.0.11 ou version antérieure
<PropertyGroup Condition="$(OS) == 'Windows_NT'"> <TargetFrameworkProfile>Profile46</TargetFrameworkProfile> </PropertyGroup>
ouCondition="$(OS) != 'Windows_NT'
pour mono. Votre kilométrage peut varier. Voir l' exemple de travail .Mono 2.10.X
2. Être capable d'exécuter des tests unitaires à partir de la ligne de commande.
.ci/nunit.sh
est mon propre script shell pour les tests de nunit, vérifié à la racine du dépôt. Je peux donc installer la version nunit-console que je veux avec nuget, et configurer également divers types d'inclusion / exclusion de catégories. Votre kilométrage peut varier, mais cette technique devrait fonctionner pour xunit, etc. Ou faites votre propre truc avec xbuild ou faux ..ci / nunit.sh
3. Configurer Travis pour mono
Mono v3.8.0
Pour tester le dernier mono, il est plus facile d'utiliser des hôtes Mac (cible en utilisant
language:objective-c
Mono v3.1.2 et plus tard, a changé la distribution sur un Mac d'un DMG à juste un PKG afin que l'installation soit assez simple. Ce modèle doit prendre en charge les bibliothèques de classes portables, .NET 4.5.1 et FSharp 3.1.Pour cibler à la fois Mono v2.10.X et v3.0.X
Il est facile d'utiliser des hôtes Mac pour configurer une matrice de construction pour plusieurs versions de Mono. Voir le script ci-dessous
Pour Linux
Et maintenant, vous devriez être prêt à utiliser travis sur votre projet c #.
la source
sudo installer -pkg
. Pourriez-vous m'aider à résoudre ce problème? Je vous remercie! voir, travis-ci.org/Aimeast/TestForFirst/builds/13814315language: objective-c
est nécessaire pour ce modèle, afin qu'il utilise l'hôte OS X.C'est le point clé - le projet doit fonctionner sur Mono. Cela fonctionne principalement pour les projets de style bibliothèque ( AWS SDK .NET en est un bon exemple), mais nécessite plus d'efforts de développement et de discipline. L'environnement de construction Linux ne fonctionnera pas si vous développez un projet pour la plate-forme Windows tel qu'une application WPF, un service cloud Azure, une application Windows Phone / Store ou même une API Web ASP.NET.
AppVeyor CI est un service d'intégration continue hébergé pour la plate-forme Windows et il est gratuit pour les projets open source. C'est comme Travis CI pour Windows!
Vous pouvez configurer le processus de génération pour la solution VS.NET, le projet MSBuild personnalisé, PSake ou tout script PowerShell du fichier de commandes. En outre, AppVeyor dispose d'un cadre intégré de gestion et de déploiement des artefacts.
la source
Comme déjà mentionné, Travis CI a un support bêta pour C # . Je suis simple à utiliser. La nunit peut également être intégrée très facilement. Voici un petit exemple de fichier .travis.yml qui exécute des tests nunit et marque la construction comme échouée si au moins un test unitaire échoue:
la source
sudo: required
à la fin. Fonctionne comme un charme.Si vous souhaitez utiliser Travis CI avec F #, sur GitHub, avec FAKE et Packet, alors le F # ProjectScaffold est recommandé:
http://fsprojects.github.io/ProjectScaffold
la source