Jenkins vs Travis-CI. Qual você usaria para um projeto Open Source? [fechadas]

270

Para o meu projeto, preciso escolher entre Jenkins e Travis-CI. Uso Jenkins há anos, mas também li boas críticas sobre o Travis-CI.

Qual você usaria para um projeto Open Source? Quais são os principais benefícios ou vantagens de ambos?

Juan Luis
fonte

Respostas:

293

Travis-ci e Jenkins, enquanto ambos são ferramentas para integração contínua, são muito diferentes.

O Travis é um serviço hospedado (gratuito para código aberto) enquanto você precisa hospedar, instalar e configurar o Jenkins.

Travis não tem empregos como em Jenkins. Os comandos a serem executados para testar o código são obtidos de um arquivo nomeado .travis.ymllocalizado ao longo do código do projeto. Isso facilita a existência de código de teste diferente por ramificação, pois cada ramificação pode ter sua própria versão do arquivo .travis.yml.

Você pode ter um recurso semelhante ao Jenkins se usar um dos seguintes plugins:

  • Travis YML Plugin - aviso: não parece ser popular, provavelmente não possui recurso completo em comparação com o Travis real.
  • Jervis - uma modificação do Jenkins para fazê-lo criar trabalhos a partir de um .jervis.ymlarquivo encontrado na raiz do código do projeto. Se .jervis.ymlnão existir, ele voltará a usar o .travis.ymlarquivo.

Existem outros serviços hospedados que você também pode considerar para a integração contínua (lista não exaustiva):


Como escolher ?

Você pode querer ficar com o Jenkins porque está familiarizado com ele ou não deseja depender de terceiros para o seu sistema de integração contínua. Caso contrário, eu abandonaria o Jenkins e utilizaria um dos serviços de IC hospedados gratuitos, pois eles economizariam muitos problemas (hospedar, instalar, configurar, preparar tarefas)

Dependendo de onde seu repositório de código está hospedado, eu faria as seguintes escolhas:

  • em casa → Jenkins ou gitlab-ci
  • Github.com → Travis-CI

Para configurar o Travis-CI em um projeto do github, tudo que você precisa fazer é:

  • adicione um arquivo .travis.yml na raiz do seu projeto
  • crie uma conta em travis-ci.com e ative seu projeto

Os recursos que você recebe são:

  • O Travis executará seus testes para cada push feito no seu repo
  • O Travis executará seus testes em todas as solicitações de recebimento que os colaboradores fizerem
Thomasleveil
fonte
25
Na minha experiência, usar o Jenkins sobre o Travis também poupará muitos problemas ( .travis.yml!) Eu tenho vários projetos no github para os quais estou executando o meu próprio Jenkins, e não me arrependo nem um pouco. Se você tem a capacidade de administrar seu próprio Jenkins, eu incentivaria essa opção. É bom ter 100% de controle do seu ambiente de IC.
Simon Forsberg
21
O plug-in Jenkins Pipeline (que substitui projetos de estilo livre na maioria das situações) permite que o script groovy do pipeline seja colocado em um arquivo (geralmente chamado "Jenkinsfile") em seu projeto, permitindo os mesmos recursos mencionados em Travis-CI acima, com esse bônus adicional de ser apoiado pela equipe Jenkins.
precisa saber é o seguinte
48

Trabalhei em Travis e Jenkins: vou listar alguns dos recursos de ambos:

Configurar IC para um projeto

Travis vem em primeiro lugar. É muito fácil de configurar. Demora menos de um minuto para configurar com o GitHub.

  1. Entre no GitHub
  2. Criar Web Hook para Travis ( editar:
  3. Volte ao Travis e faça login com suas credenciais do GitHub
  4. Sincronize seu repositório do GitHub e ative as solicitações Push e Pull.

Jenkins:

  1. Criar um ambiente (mestre Jenkins)
  2. Criar ganchos da web
  3. Configure cada trabalho (compara com Travis)

Re-executando compilações

Travis: Qualquer pessoa com acesso de gravação no GitHub pode executar novamente a compilação clicando em `reiniciar a compilação

Jenkins: execute novamente as compilações com base em uma frase. Você fornece o texto da frase na descrição PR / commit, como reverify jenkins.

Ambiente de controle

Travis: Travis fornece ambiente hospedado. Ele instala o software necessário para cada compilação. É um processo demorado.

Jenkins: configuração única. Instala todo o software necessário em uma máquina nó / escravo e depois cria / testa em um ambiente pré-instalado.

Criar logs:

Travis: oferece suporte à criação de logs no Amazon S3.

Jenkins: Fácil de configurar com o plug-in de artefatos de construção.

rameshthoomu
fonte
Você poderia dizer o que é o S3?
Pooja
@Pooja Amazon S3
adrianN
30

Eu sugeriria o projeto Travis para código aberto. É simples de configurar e usar.

Etapas simples de configuração:

  1. Deve ter uma conta GITHUB e se registrar no site Travis CI usando sua conta GITHUB.
  2. Adicione um .travis.ymlarquivo na raiz do seu projeto. Adicione o Travis como serviço na sua página de configurações do repositório.

Agora, toda vez que você se comprometer em seu repositório, o Travis criará seu projeto. Você pode seguir etapas simples para começar a usar o Travis CI.

appsntech
fonte
7
Uma ressalva ao usar o Travis CI para código aberto: ele executa suas compilações e testes no Linux ou OSX, não no Windows. Portanto, se seu projeto for, por exemplo, .NET ou PowerShell, ele precisará ser escrito em uma versão de plataforma cruzada do .NET (Mono ou .NET Core) ou PowerShell (PowerShell Core) para que você possa usar o Travis CI . Uma ferramenta CI recebeu mais do Windows-friendly é Appveyor ..
Simon Tewsi