Estou procurando uma comparação de diferentes servidores de integração contínua (CI) (especialmente com foco em .NET) e não consegui encontrar nenhum.
Portanto, gostaria de saber o que você pensa sobre as diferentes soluções disponíveis, quais são os prós e contras, quais são os requisitos de hospedagem e por que o CI Server XY é o servidor de sua escolha.
Estou interessado em sua opinião sobre (sinta-se à vontade para comentar sobre outros para):
- Hudson
- CruiseControl
- CruiseControl.NET
- Teamcity
- CIFactory (usa CruiseControl.NET)
Os pontos de interesse são:
- Configuração (fácil, flexível)
- Integração com SCM (esp. DSVC como git ou hg)
- Integração com sistemas de compilação (MSBuild, NAnt, Rake)
- Integração com frameworks de teste
- Integração com Source Anaylsis (Simian, NDepend, FxCop, NCover etc.)
- Interface da web / painéis
- Requisitos de infraestrutura
.net
comparison
continuous-integration
Peter Mortensen
fonte
fonte
Respostas:
Nenhuma pergunta como essa está completa sem um link para a grande matriz de recursos de CI (Web Archive), que lista quase todas as opções de CI existentes.
Mas acho que é importante olhar para a frente, para o escopo do que você deseja incluir em seu sistema de CI. Será que vai ser apenas constrói ou você vai estar trazendo outros elementos como a análise estática, dependências entre projetos, implementações, testes funcionais, etc. para ajudar com que o planejamento Eu criei este wallchart no Elements of Enterprise CI (PDF ; não é necessário registro). Por favor, não deixe a "palavra E" desencorajá-lo; Quero dizer apenas coisas além da construção de CI de feedback rápido básico. :)
Não é específico da ferramenta, mas lista uma variedade de práticas que você pode considerar enquanto estiver nos estágios de planejamento / avaliação.
fonte
Nada útil em:
EDIT : A apontado por Jonik em um comentário, eu perdi Qual é a diferença entre Hudson e CruiseControl para projetos Java? e como e por que configuro uma máquina de construção C #? . Você encontrará respostas muito perspicazes. Em outras palavras, acho que tudo o que você está procurando já está no Stack Overflow.
fonte
TeamCity tem um recurso maravilhoso de permitir que o desenvolvedor execute uma compilação pessoal antes de comprometer. Muito útil!
CruiseControl.NET é o avô do grupo e, portanto, está um pouco desatualizado visualmente etc. Como já existe há algum tempo, o Google sabe como consertar muitos problemas que você encontrará.
Por essas razões (entre outras), eu uso CruiseControl.NET no trabalho e TeamCity em casa e na minha vida de código aberto :)
fonte
Eu sou um usuário CruiseControl.NET o tempo todo. Minhas equipes usam no trabalho e eu uso em casa para projetos pessoais.
Em particular, CruiseControl.NET me permite executar todo o processo de CI: compilações, atualização de versão, testes de unidade e integração, arquivamento de fonte ou candidato a lançamento, cobertura de código, até mesmo implantação em nosso sistema de teste no trabalho. É altamente personalizável, funciona bem com MSBuild e NAnt e até tinha uma arquitetura de plug-in extensível.
Praticamente faz tudo o que preciso.
A maior desvantagem: a configuração às vezes é uma dor e pode levar tempo. Mas uma vez feito, está feito, e como outro autor disse, adoro ver o sinal de "construção bem-sucedida" porque sei que não apenas a construção em si funcionou, mas também que meus testes de unidade e integração foram executados com êxito.
fonte
Team Foundation Build é uma opção, pois interage muito bem com o Team Foundation Server. É gratuito desde que você tenha licenciado o TFS.
fonte
Usamos Hudson no trabalho. A principal razão é que é muito fácil de configurar. Você pode executar o war (é um jar executável) diretamente ou implantá-lo em qualquer servlet-container. E você está pronto para começar. Além disso, Hudson suporta muitas ferramentas e é extensível através de seu sistema de plugins.
fonte
Mudamos de CruiseControl.NET para TeamCity principalmente por causa da facilidade de configuração. TeamCity também tem mais recursos, mas o principal motivo é que uma boa interface de usuário da Web é mais simples de usar do que arquivos de configuração XML.
EDITAR: A maioria das tarefas que o TeamCity fará fora da caixa; quando necessário usamos NAnt.
fonte
CruiseControl.NET - pode ser um pouco difícil de configurar (assim como a maioria dos sistemas de CI), mas vale a pena continuar com ele. Eu atualmente o tenho configurado para executar testes de unidade na conclusão de compilações e para produzir instaladores Wix sob demanda. Como Dan disse, parece um pouco desatualizado, mas isso não importa, pois fornece muitas informações fáceis de obter e de ler.
Uma coisa - certifique-se de que todos os seus desenvolvedores tenham o CC Tray instalado, executando e apontando para suas compilações. É uma ótima sensação obter "Outra construção bem-sucedida" em sua bandeja de notificação.
fonte
Estamos usando a ccnet no trabalho, o que é bom para a maioria de nossas necessidades (temos cerca de 50 compilações automatizadas), mas precisa de uma pessoa para ajustes e consertos em tempo integral.
Se você está começando do zero, dê uma olhada na Bamboo. Nós o examinamos e parece realmente promissor, mas não atende completamente às nossas necessidades e investimos muito tempo na ccnet para mudar para o Bamboo agora.
Saudações,
Sebastiaan
fonte
Eu herdei um servidor luntbuild. Não é uma boa opção para um projeto .NET. Se você descobrir que está constantemente voltando a usar o servidor de compilação para executar tarefas de linha de comando genéricas, então algo está errado. Um bom servidor de construção tinha um bom entendimento da saída de testes de unidade e tarefas msbuild como mais do que comandos opacos a serem executados quando o sistema de controle de origem muda.
Estou gostando de migrar para o Team City.
fonte
Eu sou bastante novo na cena CI e tenho concentrado meus esforços no CruiseControl.NET, usando NAnt e Ivy para construir meus projetos .NET.
Descobri que CruiseControl.NET é muito adaptável a muitas outras ferramentas, como NCover / NUnit / etc. Todos eles se conectam a isso e integram os resultados de um processo de construção combinado.
Estarei olhando para o TeamCity em um futuro próximo para meu próprio interesse, mas acho que CruiseControl faz um bom trabalho, mas tão bom quanto seus scripts de construção! Se forem calças, então só se pode esperar que suas construções sejam tão boas.
Mas, em resumo, CruiseControl.NET é uma boa solução, mas ainda estou para descobrir o quão boa é a concorrência em comparação.
fonte
Estamos felizes com Hudson . Não tenho nada para comparar, mas era simples de configurar e começar a funcionar. No momento, ele cria apenas projetos Win32 C ++ e um instalador, mas estamos portando para o Linux e deve funcionar com isso também.
Obtém repositórios do Subversion sem problemas e envia alertas por e-mail, etc. Gostamos disso até agora. Novamente, temos experiência limitada com comparações.
fonte
Tenho trabalhado com CruiseControl.NET, TFS 2012 e TeamCity 7.x por vários anos e acredito que TeamCity é o MELHOR devido à sua facilidade de uso, interface de usuário confortável e informativa e outros recursos interessantes como dependências de construção e muito mais. Simplesmente funciona, eu adoro isso.
fonte