Experiência de compilação remota de servidor de compilação contínua (cc.net, hudson, bambu, etc.)?

9

Atualmente, usamos o servidor uma vez cc.net para nosso processo de compilação, que cria .net (usando msbuild & nant) e java (usando maven e ant).

O CC.net monitora o controle de origem e aciona uma compilação remota em execução em um servidor separado. O CC.net reúne os resultados.

Quando executamos a compilação remota, normalmente:

  • executa unidade ou junit ou similar usando dados simulados
  • opcionalmente, executa um script de banco de dados para criar uma nova instância de banco de dados ou restaurar um banco de dados de uma posição conhecida.
  • executa selênio ou similar para testar a interface do usuário
  • executa emma ou ncover para cobertura de código
  • constrói o sistema para vários ambientes de implementação (teste, aceitação, produção)

Podemos ter várias compilações em execução ao mesmo tempo, algumas .net e algumas java (de diferentes equipes de projeto).

É bastante demorado para que as compilações remotas funcionem quando configuramos um novo projeto e achamos que deve haver algo mais adequado para compilações remotas do que o cc.net.

Alguém tem alguma experiência com compilações remotas com sistemas de integração contínua?
Eu realmente não quero listas de recursos de servidores de CI, gostaria mais de saber como você os usou em um ambiente com vários servidores e vários idiomas.

Chris Buckett
fonte

Respostas:

8

Hudson (atualização: no mundo de hoje, eu usaria o Jenkins, um garfo do Hudson.)

Usei o hudson nos ambientes corporativos Java e .NET para projetos de alta visibilidade (você provavelmente já esteve em alguns sites). O Hudson é sólido desde o início, mas a melhor parte é que existem muitos plugins para fazer o que você quiser. O Hudson é altamente configurável, possui uma ótima comunidade e é realmente fácil de configurar em um ambiente de cluster, se você precisar de várias compilações ao mesmo tempo. É o meu servidor de CI favorito de todos os que já usei (CC.NET, Hudson e TFS).

Além disso, você pode usar o plug - in ChuckNorris para que ele dê o polegar para cima ou para baixo.

Ryan Hayes
fonte
11
Hudson é uma boa opção se você não estiver fazendo nada exótico, mas no final do dia, se você não puder fazer o que está tentando fazer em um script em lotes, é provável que o Hudson também não o faça muito bem.
Bill
Hudson se interessou por Jenkins e Oracle Hudson. Gostaria de compartilhar qual usar?
11
@ Thorbjørn: Eu sou pró-Jenkins. Existem várias razões , mas a principal causa para mim é que Jenkins está obtendo um desenvolvimento mais ativo - principalmente porque Kohsuke Kawaguchi, o principal cara por trás de Hudson, está no campo de Jenkins. E parece que ele sente que Jenkins é a verdadeira continuação do projeto que ele iniciou . Ah, e por último, Jenkins tem um logotipo que não é o clip-art da Microsoft!
Tom Anderson
@ Thorbjørn - eu concordo com o Tom. Eu não uso o Hudson há cerca de um ano (atualmente uso o TFS), mas esse é o consenso geral que ouvi é que Jenkins é o caminho a percorrer. Novamente, eu também não uso desde que eles foram bifurcados, mas se eu tivesse que buscá-lo novamente, provavelmente seguiria a rota de Jenkins.
Ryan Hayes
7

Estávamos enfrentando essa questão há algum tempo e decidimos ir com o TeamCity . Vimos apenas Hudson, CC e TeamCity. A escolha foi fácil de fazer - o TeamCity acabou sendo nosso servidor de compilação. Observe que eu não sou profissional nisso e foi minha primeira experiência com servidores de compilação naquele momento.

Hudson - eu não tinha ideia do que fazer e onde ler sobre isso. E mesmo que eu pudesse entender alguma coisa lá, não era uma opção - muito trabalho. Eu decidi dar uma olhada no CC.

Cruise control - o mesmo que Hudson, mas de uma maneira um pouco diferente. Absolutamente nada pode ser entendido lá sem um manual e uma tonelada de ajuda do google. Acabei de dar uma olhada no TC.

TeamCity - O TeamCity parecia um paraíso após os dois primeiros. É o mais utilizável desses três. Instale, vá ao painel de administração, configure um projeto (mostre onde está o SVN, aponte para criar arquivos, especifique cobertura / testes de unidade etc.) e comece a desfrutar. E mesmo que eu não possa dizer que não pesquisei no google, ainda assim 95% do processo de instalação foi muito fácil e claro. Eu recomendo esta ferramenta. Vá e dê uma olhada nisso. Isso economizará muitos nervos e tempo :)

Devo também observar que o TC não é gratuito. Embora eles tenham uma edição gratuita que pode ser usada em projetos comerciais com algumas limitações (configuração máxima da configuração 20) - dê uma olhada na página de preços.

PS Parece que trabalho para a TC, mas realmente não :)

Jefim
fonte
3

Nós usamos o CC.NET 1.4.

Estamos tentando atualizar para 1.6 ... que pesadelo.

É poderoso ... mas SOMENTE se você usá-lo corretamente e entender como tudo se encaixa. O que é pedir muito de toda a equipe. Temos 'buildmasters' que têm acesso ao servidor e podem alterar as configurações. Mesmo assim, há muita pesquisa no Google com relação à ccnet e todo o negócio se tornou uma grande bagunça.

Pessoalmente, quero mudar para o TeamCity.

Eu recomendo que você evite o ccnet.

Ninguém
fonte
1

boa pergunta. No momento, também estamos tentando descobrir qual ferramenta se encaixa melhor para nós. Então, só poderei contar uma pequena experiência. Mas estaríamos muito interessados ​​em qual sistema de CI você escolheu agora e por quais razões. Então, por favor, mantenha-nos informados.

Estou muito impressionado com o nível do seu IC. Eu tenho que admitir que temos menos requisitos, porque ainda não executamos testes de interface do usuário e não criamos instâncias de banco de dados ou similares, apenas usamos simulações para nossos testes de unidade.

Agora para nossas experiências até agora:

Para projetos Java, estamos usando o Bamboo, que funciona bem usando JUnit e Emma. E não há muito esforço para montar um novo projeto.

Para projetos .NET, ainda estamos procurando a melhor solução

  • Controle de cruzeiro: ainda não foi possível executá-lo devido a problemas de conexão com o repositório

  • TFS:

    a) Existem algumas etapas de configuração necessárias para poder executar a primeira compilação.

    b) Existem algumas armadilhas nas quais você precisa superar os direitos de acesso. Existem muitas funções que você pode definir e você precisa saber exatamente quais direitos têm seu processo de criação e qual sua conta de login pessoal. Mas se você tiver tempo suficiente para gerenciar, poderá definir cada granularidade específica de que precisa.

    c) Em relação às bibliotecas referenciadas, também há algumas coisas para gerenciar, se você deseja compartilhar libs para muitos projetos e não deseja lidar com elas em todos os projetos

    d) A execução do teste NUnit não é tão fácil quanto pensávamos. Só é fácil se você estiver usando a execução de teste fornecida pelo Visual Studio, mas isso não é NUnit

    e) Ainda não tentamos rodar o NCover (as primeiras coisas primeiro :-))

  • Hudson: Próxima ferramenta, tentaremos. Parece ter um plugin realmente bom e fácil para o .NET. Vou informá-lo como funcionou

  • Bambu: primeira previsão que obtivemos: "Específico demais para Java". Mas talvez tentemos o plugin .NET, no entanto, eu o informarei

Espero que possamos continuar essa discussão e trocar experiências.

Andy


fonte