Pergunta

Gostaria de pedir-lhe que ambiente de compilação automatizado você considera melhor, com base na experiência prática. Estou planejando fazer alguns .net e algum desenvolvimento Java, então eu gostaria de ter uma ferramenta que suporta tanto estas plataformas.

Estive lendo em volta e descobriu sobre CruiseControl.NET , usado no desenvolvimento stackoverflow, e TeamCity com seu suporte para agentes de compilação em diferentes OS-plataformas e com base em diferentes linguagens de programação. Então, se você tem alguma experiência prática em ambos os, qual deles você prefere e por quê?

Atualmente, estou mais interessada na facilidade de uso e gerenciamento da ferramenta, muito menos no fato de que CC é open source, e TC é um assunto para licenciamento em algum momento quando você tem muito projetos para serem executados ( porque, eu preciso dele para uma pequena quantidade de projetos).

Além disso, se há alguma outra ferramenta que se encontra com o acima mencionado e você acredita que vale a pena uma recomendação -. À vontade para incluí-lo na discussão

Foi útil?

Solução

Eu tenho trabalhado em e com ferramentas de integração contínua desde o que gerou Cruise Control (versão Java). Eu tentei quase todos eles em algum ponto. Eu nunca estive mais feliz do que eu estou com TeamCity. É muito simples de configurar e ainda fornece uma grande quantidade de energia. A página de estatísticas de compilação que os tempos mostras de construção, contagem de teste de unidade, taxa de aprovação etc. é muito agradável. home page do projeto do TeamCity também é muito valioso. Para projetos simples NET você pode apenas dizer TeamCity onde a solução é eo que assembleias têm testes e isso é tudo o que precisa (excepto localização controle de origem). Temos também utilizado alguns scripts MSBuild complicado com ele e feito encadeamento de construção. Eu também já passaram por dois upgrades TeamCity e eles estavam indolor.

CruiseControl.NET também funciona bem. É mais complicado de configurar, mas ele tem uma história mais longa, por isso é fácil de encontrar soluções na web. Desde CruiseControl.NET é open source, você também tem a opção de adicionar ou alterar o que quiser. Eu tinha usado CruiseControl.NET desde o seu lançamento e escreveu parte do código cedo para cc.tray (felizmente re-escrito por alguém que sabia melhor).

Cruise, de ThoughtWorks, também parece muito bom, mas eu não vejo uma razão para eu mudar. Se eu estivesse começando um novo projeto que eu poderia dar-lhe uma tentativa, mas TeamCity tem feito um grande trabalho de fazer o simples coisas simples ao fazer a completamente indolor complexa.

Edit: Nós apenas atualizado para TeamCity 5.0 há algumas semanas e foi outra atualização indolor. Deixou-nos aproveitar as capacidades de cobertura de código melhorados e suporte GIT. Nós também já estão usando a construção pessoal e pré-testado comprometer recursos que têm sido por um tempo. Eu apenas pensei que eu deveria atualizar a resposta para indicar que TeamCity continua melhorando e ainda é fácil de usar.

Outras dicas

eu era / sou um grande fã de CC.NET. Temos atualmente 5 projetos em CruiseControl, e funciona muito bem. Escrevendo arquivos de configuração com a mão pode ser doloroso, mas está tudo bem.

e .

Após a Kona: Integração Contínua e screencast Melhor Unidade de Teste (o primeiro 1/3 sobre TeamCity) vou verificar TeamCity também. Eu amo o painel de instrumentos de teste de unidade integrado e interface de configuração.

Eu acho que todos deve assistir a este vídeo antes de escolher CC.NET ou TeamCity.

P.S .: Espero que haja um vídeo CC.NET valiosas sobre a rede também.

O meu servidor de CI favorito de longe é Hudson. Fácil de configurar e manter, os lotes de gráficos agradáveis ??para mostrar tendências para os desenvolvedores e não-desenvolvedores e livre.

Eu estou usando TeamCity atualmente em um projeto e estou geralmente satisfeitos com isso, mas muitos dos gráficos que gera não são especialmente úteis, e é mais complicado de configurar do que Hudson.

Dito isso, TeamCity é poderoso, livre para muitos usos, e tem uma característica do assassino: Executar remoto. Você pode "pré-compromisso" seu check-in em linha reta da IDEA ou Eclipse, execute uma ou mais configurações de compilação no servidor TeamCity, e só confirmar as alterações se a compilação for bem sucedida (por exemplo, compila e todos os testes passam).

Uma vez que você pode obter tanto TeamCity e Hudson instalado e funcionando em poucas horas, pode valer a pena pegar tanto e executá-los lado a lado, juntamente com quaisquer outros (como CruiseControl) que você pode pensar. Se você não pode suportar um servidor CI-se rapidamente para fazer uma comparação lado-a-lado, então pelo menos você tem um ponto de dados para fácil de instalar e / ou configuração.

Eu tenho usado os dois com sucesso em projetos diferentes. A partir de uma configuração e ponto de vista administrativo Equipe City é muito mais fácil de lidar. Você não tem que cortar em torno com arquivos .config como você faz com CC ea instalação é uma brisa. Desde que você não tem um monte de projetos que eu recomendaria Equipe City sobre CC até chegar ao ponto em que os custos Equipe Cidade $$.

Eu tenho usado tanto CC.net e TeamCity. Estou encarregado de configurar e instalar TeamCity para a minha organização (5 desenvolvedores). A nossa organização usa algumas práticas e ferramentas incomuns (pelo menos, para orgs de nosso tamanho), tais como Perforce para controle de origem e vários agentes de compilação em execução em sistemas operacionais heterogêneos, o que causou algumas dores de cabeça de configuração inicial. No entanto, o suporte via e-mail foi absolutamente top-notch em se tudo configurado. Recebi respostas às minhas perguntas idiotas literalmente em minutos.

A interface é intuitiva e ágil, bem como característica-embalada. O produto se sente muito caro. A configuração é fácil, ea interface web é suficiente intellegent para atualizar-se sem qualquer reinício dos serviços do agente ou servidor, ou mesmo refrescante da página.

Eu sinto que estamos usando apenas sobre cada recurso avançado do produto e não encontraram erros em tudo até agora. integração NDepend, os scripts NAnt aninhadas, versão rotulagem Perforce, o nome dele, nós estamos fazendo isso.

Eu recomendo TeamCity para quem procura por um servidor de integração contínua, ou qualquer servidor de compilação, realmente.

Sem querer lançar ferramentas alternativas para você :-)

Hudson é uma ótima alternativa open source, eu usei CC e CC.net, e confesso que eu acho que eles são ferramentas fantásticas. Estou pensando comutação para hudson como apears muito mais fácil de configurar e manter.

https://hudson.dev.java.net/

Verifique se o sistema que você decidir sobre escalas para o número de projetos que você vai precisar dele para lidar com ...

Eu uso CruiseControl.Net mas eu não recomendo para a construção de lotes de projetos ... Eu tenho um arranjo (possivelmente um pouco estranho) onde tenho muitas bibliotecas C ++ estática que eu componho em aplicações. Cada biblioteca depende de outras bibliotecas e os aplicativos puxar um conjunto de bibliotecas e de construção. Cada lib tem um conjunto de testes. Cada aplicativo tem um conjunto de testes. Eu construo para 5 compiladores e variações de (janelas) plataformas.

A primeira coisa que descobri foi que gatilhos projeto de CC.NET não são realmente muito o que você precisa eo multi-trigger não joga bem com gatilhos projeto. A forma como gatilhos projeto de trabalho (eles usam a comunicação remota para se conectar ao servidor onde o projeto está armazenado (mesmo que seja um projeto que é gerido pela mesma instância do CC.Net) e puxe todos os projetos a partir desse servidor e pesquisar a lista sequencialmente olhando para o projeto que você está interessado em ...) significa que eles não escalam bem. Depois de conseguir acima de um certo número de projetos que você vai descobrir que CC.Net está tomando a maior parte do CPU para sua máquina de compilação.

É claro, é open source, assim você pode corrigi-lo ... E, eu tenho certeza que é bom para um pequeno número de projetos não-interdependentes.

Para mais detalhes sobre os problemas que tive e alguns patches para CC.Net ver aqui http://www.lenholgate.com/archives/cat_ccnet.html

Eu tenho recentemente configuração cc .net. É uma grande aplicação mas requer um pouco de paciência. Você vai ser a edição de arquivos de configuração no bloco de notas um monte :)

Tem sido em torno de um tempo para que o seu bem suportado e normalmente você pode encontrar alguém que tenha feito o que você wantto fazer antes. A interface web é .net, assim que foi uma vantagem para nós como nós somos uma loja Microsoft.

Eu ainda não utilizado TeamCity, mas tenho ouvido algumas recomendações dele e ele parece bem.

Eu tive uma experiência criação e gestão de CruiseControl (versão Java) no Linux durante a minha empresa anterior. Como a maioria das pessoas sugerem, não é a coisa mais trivial de configurar. Você precisa entender a sua estrutura, a fim de chegar a uma configuração viável / managable. No entanto, uma vez que você passou essa corcunda, sinto que CruiseControl é suficiente bastante flexível para permitir que você para fazer outro tipo de coisas para caber diferentes cenários.

Além disso, a documentação CruiseControl, sua wiki página também tem algumas informações úteis, bem .

Eu não tenho uma experiência direta com TeamCity. Apesar de sua pré-teste cometer recurso parece bastante interessante.

A outra ferramenta CC que você pode dar uma olhada é Bamboo da Atlassian. É muito mais fácil de configurar e a interface é mais agradável. Porém, não é tão flexível quanto o que oferece CruiseControl.

Uma terceira opção que você pode querer considerar: Cruzeiro Thoughtworks'. Ele é construído sobre CruiseControl, mas oferece muito mais recursos, a configuração mais fácil, etc, etc. Não é grátis (ou open source).

http://studios.thoughtworks.com/cruise-continuous-integration

Eu tenho usado o TeamCity nos últimos anos 1 e meio, e ter uma grande experiência. I integraram uma série de projetos .Net e Java e usadas ferramentas como MSBuild, Maven etc. eu achei TeamCity muito simples de configurar e trabalhar com ele. Eu consegui obter CI correndo para alguns projetos SQL, assim que foi um pouco de pesadelo que poderia ter sido pior com outras ferramentas de IC.
Recentemente atualizado para TeamCity 8.0.6 que era indolor. Também TeamCity fornece uma RESTO API que é muito útil para alguns cenários. Se você estiver usando PowerShell para automatizar constrói um número de scripts de integração Psake / TeamCity estão disponíveis no GitHub

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top