Que ferramenta de integração contínua é melhor para um projeto C ++? [fechadas]

StackOverflow https://stackoverflow.com/questions/145586

  •  02-07-2019
  •  | 
  •  

Pergunta

Cruisecontrol e Hudson são dois sistemas de integração contínua populares. Embora ambos os sistemas são capazes de fazer o automatizada contínua constrói bem, ele só parece muito mais fácil de criar um script de construção lote ou bash, então use programador Windows ou cron com o cronograma constrói.

Existem melhor contínuo sistemas de integração disponível para projetos C ++? Ou está apenas usando um script e um programador a maneira mais simples?

Foi útil?

Solução

Temos vindo a utilizar CruiseControl para CI em um projeto C ++. Embora seja a única coisa que usar formiga para, o script de construção Ant para CruiseControl só começa o nosso script de construção normal, por isso é muito simples e não temos realmente necessário para atualizá-lo em um longo tempo. Portanto, o fato de que CrusieControl é baseado em Java não foi realmente um problema em tudo para nós.

Os principais benefícios do uso de algo como controle de cruzeiro são

  • Uma boa página web mostrando o status de construção
  • E-mail após cada compilação ou após falha constrói
  • automaticamente compilação após um commit para o sistema de controle de origem
  • Um plugin do Firefox para monitorar o status de construção
  • mostra a saída para quaisquer erros de compilação.
  • Shows quais arquivos foram alterados desde a última compilação (bom para ver que desenvolvedor quebrou o buid)

Claro que você pode escrever um script si mesmo que faz tudo isso, mas por que fazer todo esse trabalho? No longo prazo, o custo inicial extra de configurar CruiseControl (ou algo similar) é provavelmente muito menos do que o custo de manutenção e atualização de um script personalizado CI compilação.

Se tudo que você precisa é lançar uma compilação diária e um script simples iniciados por cron é suficiente para as suas necessidades, em seguida, por todos os meios fazê-lo. No entanto, uma das vantagens do CI é que você recebe um relatório de status de compilação após cada check-in. Escrevendo um script para fazer isso dá mais trabalho e CruiseControl já faz isso.

Outras dicas

Hudson para CI e SonarQube para métricas de código. Eles estão integrados, e Hudson tem um punhado de plugins que nenhum cronjob pode bater.

Um ótimo plugin é CI jogo, que mantém uma pontuação sobre quem quebra o constrói e que comete sem quebrá-lo. Hudson tem plugins para jogar com VMWare, selênio, SVN, CSV, Git. Tem syndication RSS, que pode ajudá-lo a automatizar ainda mais tudo o mais.

Hudson é grande ...

Estamos usando Dart Painel . É open source, mas impulsionado por KitWare . Eles desde então, mudou o nome para CDash que eu presumo é ainda tão capaz. Estamos fazendo vários tipos de testes, incluindo todas as noites e integração contínua através de 10 plataformas diferentes tanto no modo de depuração e liberação, bem como executar 1000s de testes de aplicação e relatar os resultados lá também.

Eu tenho usado Buildbot para o motor de Primavera RTS projetar com sucesso.

Você também pode tentar JetBrains' TeamCity . É um produto comercial mas dá uma licença livre para até 20 configurações de compilação.

Uma das características interessantes de uma ferramenta de integração contínua (CI) é que uma compilação é acionado toda vez que algo está marcada em seu repositório de controle de origem.

Se isso não é algo que você precisa, então você é provavelmente melhor do utilizando o planejador ou cron empregos de tarefas do Windows.

Além ferramentas CI também vêm com uma (web) painel de instrumentos e capacidades de registo avançadas.

Sua pergunta me parece mais "por que eu iria usar uma ferramenta CI" e depois "qual ferramenta CI eu deveria usar". Se um script em lotes serve as suas necessidades, por favor, use isso. (Re) criando um ambiente de construção só se torna mais fácil se você não precisa de uma ferramenta CI como um componente adicional. Se você quiser controle de origem construção acionado, um painel, armazenamento dos resultados da construção antigos ou outro log, use uma ferramenta de CI e evitar o desenvolvimento de todas as funções em lote ou shell scripts.

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