El servicio de integración continua de Travis CI admite oficialmente muchos idiomas , pero no C # ni F #.
¿Puedo usarlo con mis proyectos .net?
Travis CI ahora es compatible con C # . Citando generosamente de esa página:
Visión general
La configuración para proyectos de C #, F # y Visual Basic tiene este aspecto:
language: csharp
solution: solution-name.sln
mono:
- latest
- 3.12.0
- 3.10.0
Guión
De forma predeterminada, Travis ejecutará xbuild solution-name.sln. Xbuild es una herramienta de compilación diseñada para ser una implementación de la herramienta MSBuild de Microsoft. Para anular esto, puede establecer el atributo de secuencia de comandos de esta manera:
language: csharp
solution: solution-name.sln
script: ./build.sh
NuGet
De forma predeterminada, Travis ejecutará nuget restore solution-name.sln, que restaura todos los paquetes NuGet de su archivo de solución. Para anular esto, puede establecer el atributo de instalación de esta manera:
language: csharp
solution: solution-name.sln
install:
- sudo dosomething
- nuget restore solution-name.sln
Ver la respuesta de danielnixon para conocer la forma oficial de hacer esto ahora.
Es posible.
1. Tu proyecto debe funcionar en Mono
En su propia máquina mono, usando la terminal,
cd
en el directorio de su solución y ejecutando el comandoxbuild
. Esto puede funcionar automáticamente, o puede que no, ya que hay funciones que usó en Visual Studio que necesitan algunos ajustes en mono.Cosas a tener en cuenta:
.csproj
linux y tenga rutas que distingan entre mayúsculas y minúsculas donde Windows no.export EnableNuGetPackageRestore=true
antes de correrxbuild
si tu proyecto se restaura automáticamente.mozroots --import --sync
para instalarlos.nuget.*
lugar deNuGet.*
referencias en su .csproj, se sabe que existen en varias versiones de nuget..fsproj
para activar la configuración de VS2012 en máquinas que no sean de Windows agregando'$(VisualStudioVersion)' == '11.0' Or $(OS) != 'Windows_NT'
see example .Mono 3.1.12, 3.2.4 y posteriores
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.
condiciones de la plataforma de uso (mencionadas en Mono 3.0.11 o anterior ) o actualice a 3.1.2.Mono 3.0.11 o anterior
<PropertyGroup Condition="$(OS) == 'Windows_NT'"> <TargetFrameworkProfile>Profile46</TargetFrameworkProfile> </PropertyGroup>
oCondition="$(OS) != 'Windows_NT'
para mono. Su experiencia puede ser diferente. Ver ejemplo de trabajo .Mono 2.10.X
2. Ser capaz de ejecutar pruebas unitarias desde la línea de comandos.
.ci/nunit.sh
es mi propio script de shell para pruebas nunit, registrado en la raíz del repositorio. Entonces puedo instalar la versión de nunit-console que quiero con nuget y configurar también varias inclusiones / exclusiones de categorías. Su kilometraje puede variar, pero esta técnica debería funcionar para xunit, etc. O haga lo suyo con xbuild o fake ..ci / nunit.sh
3. Configure Travis para mono
Mono v3.8.0
Para probar el último mono, es más fácil usar hosts de Mac (apunte usando
language:objective-c
Mono v3.1.2 y luego cambió la distribución en una Mac de un DMG a solo un PKG, por lo que la instalación es bastante simple. Esta plantilla debe admitir bibliotecas de clases portátiles, .NET 4.5.1 y FSharp 3.1.Para apuntar a Mono v2.10.X y v3.0.X
Es fácil de usar hosts Mac para configurar una matriz de compilación para múltiples versiones de Mono. Ver guión a continuación
Para linux
Y ahora debería estar listo para usar travis en su proyecto de c #.
fuente
sudo installer -pkg
. ¿Podría ayudarme a solucionarlo? ¡Gracias! ver, travis-ci.org/Aimeast/TestForFirst/builds/13814315language: objective-c
es necesario para esa plantilla, de modo que utilice el host OS X.Ese es el punto clave: el proyecto debe funcionar en Mono. Esto funciona principalmente para proyectos de estilo de biblioteca ( AWS SDK .NET es un buen ejemplo), aunque requiere más esfuerzos de desarrollo y disciplina. El entorno de construcción de Linux no funcionará si está desarrollando un proyecto para la plataforma Windows, como la aplicación WPF, el servicio en la nube Azure, la aplicación Windows Phone / Store o incluso la API web ASP.NET.
AppVeyor CI es un servicio de integración continua alojado para la plataforma Windows y es gratuito para proyectos de código abierto. ¡Es como Travis CI para Windows!
Puede configurar el proceso de compilación para la solución VS.NET, el proyecto personalizado de MSBuild, PSake o cualquier script de PowerShell de un archivo por lotes. Además, AppVeyor tiene un marco de implementación y administración de artefactos incorporado.
fuente
Como ya se mencionó, Travis CI tiene soporte beta para C # . Es sencillo de usar. Además, nunit se puede integrar muy fácilmente. Aquí hay un pequeño ejemplo de un archivo .travis.yml que ejecuta pruebas nunit y marca la compilación como fallida si falla al menos una prueba unitaria:
fuente
sudo: required
al final. Funciona de maravilla.Si desea utilizar Travis CI con F #, en GitHub, con FAKE y Packet, se recomienda F # ProjectScaffold:
http://fsprojects.github.io/ProjectScaffold
fuente