Quais ICs podem criar bibliotecas escritas em projetos C ++ / VBA e .NET (C #)?

9

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.

Tatranskymedved
fonte
3
Ajudaria se você pudesse elaborar o que estava procurando na sua ferramenta de IC. Quais são os seus requisitos, quais são as suas necessidades? Por exemplo: de quais idiomas você criará artefatos? Você está interessado em um modelo SaaS ou prefere hospedar seu próprio IC? Existem outras ferramentas de IC por aí, por que você definiu essas três? Fornecer-nos mais informações permitirá respostas mais adaptadas às suas necessidades, caso contrário, você obterá respostas genéricas que já podem ser encontradas no Google: hackernoon.com/…
Alexandre
1
Olha, sua pergunta é muito ampla porque você ainda não experimentou essas ferramentas. Você pode instalá-los facilmente em um contêiner com poucos comandos e testá-los. Se você não tem quase nenhuma experiência, pode escolher aleatoriamente, obter experiência com uma ferramenta e, se ela parar de funcionar, pode fazer uma pergunta mais específica sobre quais recursos você precisa e quais ferramentas podem ter ou quais plug-in necessário para sua ferramenta atual para obter esse recurso.
Jiri Klouda
2
Com a edição, eu vou agora fechar este como um duplicado desta questão: stackoverflow.com/questions/1438390/comparison-of-ci-servers
Jiri Klouda
1
O problema com a pergunta que solicita os principais atributos no software de Integração Contínua é que você obterá a mesma resposta da seleção de quase qualquer outra ferramenta. Por exemplo, a resposta da avi poderia ser igualmente aplicada à ferramenta de revisão de código ou ao sistema de controle de versão ou wiki ou praticamente qualquer coisa.
Jiri Klouda
1
bom link para Jenkins Vs TeamCity Isso ajudará a descide qual ferramenta CI para ir para linkedin.com/pulse/jenkins-vs-teamcity-amir-najjar
Ashish Karpe

Respostas:

12

Em geral, existem cinco diferenças principais entre diferentes soluções de software de IC.

  1. 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?

  2. 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?

  3. 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?

  4. 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?

  5. 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?

avi
fonte
Sua lista perde o ponto de que os serviços gerenciados podem ter limitações ou erros arbitrários não documentados que podem ser difíceis ou impossíveis de contornar. Na minha experiência, o círculo CI e Jenkins têm esse tipo de limitações que podem negar completamente os benefícios de um serviço gerenciado.
Michael Le Barbier Grünewald
Lista muito boa. Eu também adicionaria Extensibilidade / Plugins. Mesmo que você o mencione implicitamente na comunidade, eu diria que eles podem ser exclusivos porque algumas ferramentas fornecem seus próprios plugins, enquanto eles podem ter uma forte comunidade de suporte.
Gmol #
6

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 CircleCIe, TravisCIcomo eles são compatíveis apenas com base na nuvem GitHube / ou Bitbucket.

Jenkinspossui 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).

Dan Cornilescu
fonte