O serviço de integração contínua Travis CI oferece suporte oficialmente a vários idiomas , mas não C # ou F #.
Posso usá-lo com meus projetos .net?
Travis CI agora oferece suporte a C # . Citando livremente dessa página:
Visão geral
A configuração para projetos C #, F # e Visual Basic é semelhante a esta:
language: csharp
solution: solution-name.sln
mono:
- latest
- 3.12.0
- 3.10.0
Roteiro
Por padrão, o Travis executará xbuild solution-name.sln. Xbuild é uma ferramenta de construção projetada para ser uma implementação da ferramenta MSBuild da Microsoft. Para substituir isso, você pode definir o atributo de script assim:
language: csharp
solution: solution-name.sln
script: ./build.sh
NuGet
Por padrão, o Travis executará nuget restore solution-name.sln, que restaura todos os pacotes NuGet de seu arquivo de solução. Para substituir isso, você pode definir o atributo de instalação assim:
language: csharp
solution: solution-name.sln
install:
- sudo dosomething
- nuget restore solution-name.sln
Veja a resposta de danielnixon para saber a maneira oficial de fazer isso agora.
É possível.
1. Seu projeto precisa funcionar no Mono
Em sua própria máquina mono, usando o terminal,
cd
em seu diretório de solução e executando o comandoxbuild
. Isso pode funcionar automaticamente ou não, pois há recursos que você usou no Visual Studio que precisam de alguns ajustes em mono.Coisas a serem observadas:
.csproj
linux tem caminhos que diferenciam maiúsculas de minúsculas, onde o Windows não.export EnableNuGetPackageRestore=true
antes de executarxbuild
se o projeto for restaurado automaticamente.mozroots --import --sync
para instalá-los.nuget.*
vez deNuGet.*
referências em seu .csproj, sabe-se que existem em várias versões do nuget..fsproj
para acionar a configuração do VS2012 em máquinas não Windows adicionando'$(VisualStudioVersion)' == '11.0' Or $(OS) != 'Windows_NT'
ver exemplo .Mono 3.1.12, 3.2.4 e posterior
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.
Condições de uso da plataforma (mencionadas em Mono 3.0.11 ou anterior ) ou atualize para 3.1.2.Mono 3.0.11 ou anterior
<PropertyGroup Condition="$(OS) == 'Windows_NT'"> <TargetFrameworkProfile>Profile46</TargetFrameworkProfile> </PropertyGroup>
ouCondition="$(OS) != 'Windows_NT'
para mono. Sua milhagem pode variar. Veja o exemplo de trabalho .Mono 2.10.X
2. Ser capaz de executar testes de unidade na linha de comando.
.ci/nunit.sh
é meu próprio script de shell para teste de nunit, verificado na raiz do repo. Portanto, posso instalar a versão do nunit-console que desejo com o nuget e configurar várias categorias de inclusão / exclusão. Sua milhagem pode variar, mas esta técnica deve funcionar para xunit etc. Ou faça suas próprias coisas com xbuild ou fake ..ci / nunit.sh
3. Configure o Travis para mono
Mono v3.8.0
Para testar o mono mais recente, é mais fácil usar hosts Mac (alvo usando
language:objective-c
Mono v3.1.2 e posterior distribuição alterada em um Mac de um DMG para apenas um PKG para que a instalação seja bastante simples. Este modelo deve suportar bibliotecas de classes portáteis, .NET 4.5.1 e FSharp 3.1.Para segmentar Mono v2.10.X e v3.0.X
É fácil usar hosts Mac para configurar uma matriz de construção para várias versões do Mono. Veja o roteiro abaixo
Para linux
E agora você deve estar pronto para usar travis em seu projeto c #.
fonte
sudo installer -pkg
. Pode me ajudar a consertar isso? Obrigado! consulte travis-ci.org/Aimeast/TestForFirst/builds/13814315language: objective-c
é necessário para esse modelo, para que ele use o host OS X.Esse é o ponto chave - o projeto deve funcionar em Mono. Isso funciona principalmente para projetos do tipo biblioteca ( AWS SDK .NET é um bom exemplo), embora exija mais esforços de desenvolvimento e disciplina. O ambiente de construção do Linux não funcionará se você estiver desenvolvendo um projeto para a plataforma Windows, como aplicativo WPF, serviço de nuvem Azure, aplicativo Windows Phone / Store ou mesmo ASP.NET Web API.
AppVeyor CI é um serviço de integração contínua hospedado para a plataforma Windows e é gratuito para projetos de código aberto. É como o Travis CI para Windows!
Você pode configurar o processo de construção para a solução VS.NET, projeto MSBuild personalizado, PSake ou qualquer script PowerShell de arquivo em lote. Além disso, o AppVeyor possui uma estrutura integrada de gerenciamento e implantação de artefatos.
fonte
Como já mencionado, Travis CI tem suporte beta para C # . É fácil de usar. Além disso, o nunit pode ser integrado facilmente. Aqui está um pequeno exemplo de um arquivo .travis.yml que executa testes nunit e marca o build como com falha se pelo menos um teste de unidade falhar:
fonte
sudo: required
no final. Funciona como um encanto.Se você deseja usar o Travis CI com F #, no GitHub, com FAKE e Packet, o F # ProjectScaffold é recomendado:
http://fsprojects.github.io/ProjectScaffold
fonte