Eu trabalho no departamento de TI da empresa de automação / desenvolvimento e estamos prestes a implementar / adicionar CI ao nosso conjunto de ferramentas. E estamos tendo dificuldades para escolher esse.
No momento, estamos pensando sobre esses sistemas:
- Jenkins
- CircleCI
- TravisCI
Pergunta: Quais são os principais atributos dos softwares de IC que os sistemas devem ter e com base nos quais devemos compará-los?
EDIT: Esperamos do CI as coisas padrão: desde a criação dos aplicativos, execução de testes (Unidade / Integração / Desempenho / ..), salvamento de estatísticas e fornecimento de informações por email / na página (relatórios).
O problema é que não sabemos qual, se houver mais funcionalidade e se, qual é? É isso que eu procuraria sob as palavras "atributos-chave" . Os nomes acima são apenas para referência, estou procurando a resposta "por que usar isto ou aquilo" simplificado "use isso ou aquilo" .
Estamos desenvolvendo no ambiente .NET (C #) com algumas bibliotecas escritas em C ++ / VBA.
fonte
Respostas:
Em geral, existem cinco diferenças principais entre diferentes soluções de software de IC.
Custo : o software é de código aberto e gratuito ou proprietário? Sua equipe de DevOps já possui um orçamento para software ou espera-se que você compare opções gratuitas?
Manutenção : o software é algo que você precisa para hospedar e manter por conta própria ou está sendo oferecido como um serviço? Se você precisar hospedá-lo por conta própria, você tem os membros da equipe disponíveis que podem executar a manutenção? Se estiver sendo fornecido como um serviço, onde reside seu código?
Segurança : Há alguma preocupação de segurança ou conformidade sobre onde as máquinas de compilação estão hospedadas? As permissões exigidas pelo software de CI no seu SCM são bem compreendidas?
Comunidade : o software de CI tem uma boa comunidade com os plugins e suporte para as tecnologias que você usa? É fácil obter suporte ou solucionar problemas quando as coisas dão errado?
UX : Qual é a facilidade de uso do software? O software de CI suporta scripts armazenados no seu SCM para as tarefas que você precisa executar? Os relatórios são fáceis de entender ou exigirão algum treinamento?
fonte
O sistema SCM que você usa pode ser essencial para fazer sua escolha de IC.
O uso de uma solução privada / intranet, por exemplo, praticamente exclui
CircleCI
e,TravisCI
como eles são compatíveis apenas com base na nuvemGitHub
e / ouBitbucket
.Jenkins
possui plugins que suportam muitos sistemas SCM por aí, consulte Quais ferramentas SCM o Jenkins suporta? . Porém, o uso de um sistema SCM menos popular ou empacotado / personalizado pode exigir o desenvolvimento de um novo plug-in.Também podem ser importantes as particularidades da sua estrutura / infraestrutura de construção / teste , por motivos semelhantes (configuração, localização / método de acesso e compatibilidade / suporte).
fonte