Alternativas travis ci

Acabamos de lançar nossa ferramenta de automação de desenvolvimento hospedada que se concentra no desenvolvimento de aplicativos móveis (integração e entrega contínua) no momento - mas tem um sistema de "etapas" flexível que você pode usar para basicamente qualquer automação (você pode escrever sua própria etapa também - "builds" estão sendo executados dentro de máquinas virtuais OS X isoladas, VMs Ubuntu já estão em nosso roteiro):

www.bitrise.io

EDITAR

Desde o nosso lançamento, vale a pena mencionar algumas coisas que podem ser úteis para quem ler as respostas.

* Agora oferecemos suporte para projetos Android e Xamarin, bem como para iOS. Acredito que somos o único serviço de CI hospedado que oferece suporte a projetos iOS da Xamarin.

* Temos mais de 60 integrações (

https://www.bitrise.io/integrations

) como etapas de construção, que você pode usar para criar fluxos de trabalho para diferentes cenários, como ramificações diferentes - há uma seção disso na página de destino)

* Muitas dessas etapas de construção devem-se à biblioteca de etapas de código aberto que temos, onde você pode facilmente adicionar seus próprios scripts ou integrações com um Pull Request.

* Agora temos uma CLI de código aberto (

https://www.bitrise.io/cli

), que você pode usar para executar o bitrise em sua própria máquina, facilitando os testes e o compartilhamento de etapas.

* Com a introdução da CLI, agora você pode criar / editar fluxos de trabalho no formato YAML.

* Temos suporte integrado para APIs GitHub e Bitbucket, outros serviços de hospedagem git podem ser configurados manualmente

* Agora você pode agendar compilações noturnas

Esses são apenas os pontos principais. O que realmente faz o Bitrise se destacar é o sistema Step and Workflow de construção, que torna muito fácil e flexível configurar seus projetos para CI em conjunto com a CLI. E ter isso como código aberto dá a todos a oportunidade de criar o que pode estar faltando, em vez de esperar que a equipe da Bitrise o faça.

Travis CI vs Jenkins: Qual ferramenta de CI / CD é a certa para você?

Fonte -

LambdaTest

Travis CI e Jenkins são ferramentas CI / CD populares e foram lançados no mesmo ano, ou seja, 2011. Em julho de 2020, Jenkins era a escolha mais óbvia como ferramenta de CI / CD com 15,9 mil estrelas e 6,3 mil garfos, em comparação com TravisCI que tem 8k estrelas e 756 garfos.

No entanto, esses números por si só não indicam qual ferramenta de CI / CD é mais adequada para seu projeto futuro ou existente. Jenkins é um código aberto e o Travis CI é gratuito para projetos de código aberto.

Como profissional de DevOps, você precisa avaliar essas ferramentas com base em seu orçamento, requisitos de projeto e outros pontos de dados. É por isso que nos aprofundamos na comparação entre Travis CI e Jenkins para ajudá-lo a decidir a ferramenta de CI / CD certa para os requisitos de seu projeto.

Se você é novo no DevOps e está apenas aprendendo o básico, recomendamos que leia nosso artigo detalhado sobre “

O que é integração contínua e entrega contínua?

”. Sem mais delongas, vamos começar.

Travis CI vs Jenkins - Confronto Detalhado

Aqui estão alguns dos recursos usados ​​para comparação entre o Travis CI e o Jenkins:

Configuração e instalação

Jenkins é um programa Java autocontido que funciona perfeitamente fora da caixa. No total, três etapas principais estão envolvidas se o servidor Java e Tomcat estiver pré-instalado. Jenkins está disponível para plataformas Windows, Unix e macOS.

O Jenkins pode ser combinado com o Docker para trazer mais velocidade e consistência às tarefas de automação. Jenkins pode ser executado como um servlet em contêineres Java, como GlassFish e Apache Tomcat.

Usar a ferramenta Travis CI com um repositório de código hospedado em nuvem não requer nenhuma instalação. No entanto, os seguintes pré-requisitos devem ser atendidos:

  • Uma conta no GitHub ou Bitbucket
  • Permissões de proprietário para o projeto hospedado na plataforma preferida (ou seja, GitHub ou Bitbucket)

Para começar a usar o Travis CI com GitHub, o desenvolvedor precisa se inscrever no GitHub no Travis. Habilite o repositório para teste na página de configurações do Travis e adicione .travis.yml (arquivo de texto YAML) ao diretório raiz. Mais detalhes sobre a instalação do Travis CI usando GitHub e Bitbucket estão disponíveis

aqui

.

O processo de configuração e instalação do Jenkins é simples, pois algumas etapas são necessárias na instalação. O Travis CI é uma das ferramentas preferidas se você estiver usando GitHub ou Bitbucket, pois se integra com as respectivas plataformas. Ele executa automaticamente os conjuntos de testes quando qualquer alteração é enviada para o repositório.

Fácil de usar

O foco do Jenkins sempre foi a funcionalidade, e não a usabilidade. Isso não significa que não seja amigável, já que a documentação é exaustiva o suficiente para começar a usar o Jenkins. O processo de atualização do Jenkins também é simples e direto. Todas as configurações são armazenadas em um arquivo XML simples que o administrador pode editar diretamente do sistema de arquivos. Portanto, as alterações podem ser espalhadas rapidamente por vários projetos Jenkins, em vez de fazer o mesmo a partir da IU.

Devido à forte integração com o GitHub, o Travis CI é a ferramenta de CI / CD preferida para muitos projetos de código aberto. O Travis CI permite que você teste solicitações de pull e ramificações independentemente. Para facilitar o monitoramento, os resultados do teste são exibidos na IU do GitHub.

A documentação é exaustiva, o que torna a integração muito fácil. Devido à interface de usuário simples, o Travis CI é mais amigável de usar quando comparado ao Jenkins. No entanto, a opinião pode ser diferente para um desenvolvedor (ou administrador) que conhece bem o Jenkins.

Execução Paralela

Suporta Travis CI

teste paralelo

. Também pode ser integrado com ferramentas como Slack, HipChat, Email, etc. e receber notificações se a construção não for bem-sucedida. Os desenvolvedores podem acelerar seus conjuntos de testes executando várias compilações em paralelo, em diferentes máquinas virtuais. O recurso de 'matriz de construção' oferecido pelo Travis CI permite que os desenvolvedores dividam uma construção em várias partes e, assim, acelere os pacotes.

Para testes paralelos, você precisa fazer alterações no arquivo .travis.yml para utilizar totalmente a capacidade disponível de sua conta. Você pode executar compilações paralelas em uma única VM (máquina virtual) ou em várias VMs para RSpec, Cucumber ou Minitest.

Os estágios de compilação no Travis CI também podem ser usados ​​para obter a execução paralela. Os estágios de construção são usados ​​para agrupar tarefas e executar as tarefas relevantes (em um estágio) em paralelo. No entanto, as etapas são executadas de maneira sequencial. O plug-in Parallel Test Executor é usado para execução paralela usando Jenkins. Como o mesmo ambiente é compartilhado por diferentes compilações, você pode enfrentar problemas com compilações paralelas no Jenkins, especialmente ao acessar recursos compartilhados como sistema de arquivos.

As compilações paralelas são parte integrante das ferramentas de CI / CD e não há um vencedor claro no confronto Travis CI vs Jenkins.

Ecossistema de aplicativos e plug-ins

Travis CI tem suporte para 21 linguagens de programação como C, C ++, Java, Perl, PHP, Python, R, JavaScript (com Node.js) e muito mais. Dependendo da sua preferência de idioma, você pode baixar aplicativos desenvolvidos pela comunidade para o Travis CI.

O ecossistema de aplicativos e ferramentas compreende ferramentas para aplicativos móveis, plug-ins, ferramentas de linha de comando, bibliotecas e muito mais. Você pode encontrar mais informações sobre os aplicativos, clientes e ferramentas do Travis CI

aqui

.

Como Jenkins é um projeto de código aberto com um ecossistema de plug-ins transbordando, ele prospera no desenvolvimento da comunidade. Atualmente, existem mais de 1500 plug-ins oferecidos pelo Jenkins. Cada um deles oferece suporte para construção, implantação, automação e também tem uma grande contribuição da comunidade. Jenkins é extensível devido à disponibilidade de uma ampla gama de plug-ins.

No que diz respeito ao ecossistema de apps e plugins, o Jenkins é um claro vencedor, pois conta com o respaldo da comunidade. Não se esqueça que Jenkins tinha 628 colaboradores em julho de 2020, enquanto o Travis CI tinha 102.

Integrações de terceiros (e nuvem)

Travis CI é um servidor de CI baseado em nuvem onde você pode adicionar repositórios hospedados em outros servidores (além de GitHub e BitBucket) como submódulos. O Travis CI pode ser usado gratuitamente se o código-fonte for público.

O Travis CI tem plug-ins integrados para provedores de nuvem populares, como AWS, Azure, Google Cloud, etc. Quando se trata de integrar novos projetos GitHub com os antigos, esses plug-ins são úteis. Eles também são úteis na execução de compilações em vários eventos GitHub e na configuração de parâmetros de compilação. Mais informações sobre AWS e Azure com Travis CI estão abaixo:

  • Como implantar AWS CodeDeploy do Travis CI
  • Como o Travis CI pode implantar automaticamente o Azure Web App

Como o Travis CI, o Jenkins também oferece suporte à integração com plataformas de nuvem populares. A integração pode ser feita por meio de plug-ins. Você pode integrar o Jenkins nas seguintes plataformas de nuvem:

  • Nuvem do Google
  • Amazon EC2
  • Oceano digital
  • Microsoft Azure

Recursos e capacidades

A integração pronta para uso com o GitHub é uma das principais vantagens do Travis CI, considerando que ele é amplamente utilizado para projetos de código aberto. Por outro lado, fica um pouco mais complicado quando você tenta integrar o Travis CI com qualquer plataforma de controle além do GitHub. A ferramenta apresenta uma interface do usuário moderna e uma boa experiência, seja usada com o navegador (ou cliente de linha de comando).

Embora Jenkins e Travis CI tenham suporte para repositórios de código aberto e proprietários, as ofertas diferem um pouco para repositórios proprietários. Uma atualização para o Travis CI Enterprise (ou versão paga) é necessária se você pretende construir e testar seus repositórios privados disponíveis no GitHub. O Travis CI tem uma interface de usuário amigável que o torna muito fácil de usar. Travis CI usa uma abordagem de sala limpa para compilações, em vez de usar a abordagem de agente de compilação. Portanto, cada construção é executada em um ambiente novo e limpo e consistente.

Jenkins é fácil de usar e pode ser personalizado com plug-ins. A comunidade é a espinha dorsal do Jenkins e você deve escolher o Jenkins se quiser usar uma ferramenta de CI / CD que prospera com o suporte da comunidade. Há uma curva de aprendizado envolvida na configuração e personalização do Jenkins.

Jenkins Pipeline é um conjunto de plug-ins encarregados de fornecer suporte para implementação e integração contínuas a vários pipelines de entrega no Jenkins. É usado para realizar entrega contínua com Jenkins e vem embalado com um servidor de automação que pode ser estendido ou usado para criar pipelines de entrega como 'código' com a ajuda do pipeline Domain-Specific Language (DSL). Mais informações sobre os pipelines Jenkins estão disponíveis

aqui

e

aqui

.

Suporte da comunidade

Sendo de código aberto por natureza, Jenkins tem excelente suporte da comunidade online.

Comunidade Jenkins

pode ser usado para solução de problemas, compartilhamento de conhecimento, revisões, documentação e muito mais. O Jenkins Community Blog também é atualizado regularmente.

o

Comunidade Travis CI

tem uma combinação de seções - implantação, empresa, discussão e feedback, idiomas, ambientes e muito mais. No entanto, a vibração de uma comunidade online não existe no caso do Travis CI. Plug-ins (ou aplicativos) e suporte da comunidade não são os pontos fortes do Travis CI.

Se você estiver procurando por ferramentas de CI / CD especificamente para projetos de código aberto, experimente as duas ferramentas e escolha aquela que atende aos seus requisitos.

Personalização Estendida

APIs RESTful são oferecidas pelo Travis, bem como pelo Jenkins CI para extensibilidade personalizada. A versão mais recente das APIs do Travis CI é a API V3 que foi lançada em 2017. A versão V2 da API não foi descontinuada, pois parece estar em uso para os aplicativos de front-end da web do Travis CI. o

Biblioteca Ruby para Travis CI

também é baseado na API V2.

No Jenkins, as APIs de acesso remoto estão disponíveis para XML, Python e JSON. Essas APIs podem ser usadas para acionar builds, criar empregos e muito mais. o

documentação sobre APIs do Jenkins

pode ser de grande ajuda ao usar APIs com seu projeto.

Hospedagem (On-Premise ou Cloud)

A versão gratuita e de código aberto do Travis CI é inteiramente baseada na nuvem, mas a empresa também pode ser hospedada no local. Portanto, você pode executar compilações de CI usando a versão Enterprise local com servidores internos ou sua nuvem privada. Os ambientes de nuvem ou local com suporte são AWS, Google Compute Engine, VMware, OpenStack e Azure. O Travis CI Enterprise também dá à sua equipe visibilidade e controle sobre os processos de construção.

Quando se trata de hospedagem na nuvem ou local, o Jenkins está disponível em ambas as variantes. A única cobrança associada ao uso do Jenkins (no modo local) é o investimento na configuração da infraestrutura local, já que o uso da ferramenta é gratuito. A arquitetura para escala usando o Jenkins pode ser útil ao usar o Jenkins para testes de DevOps no ambiente local.

Se você estiver procurando por uma ferramenta CI / CD gratuita (e de código aberto) para o ambiente em nuvem ou local, vá para o Jenkins. Em termos de usabilidade, o Travis CI também é bom para repositórios de código aberto. A mudança para o Travis CI Enterprise é puramente baseada em seu orçamento e requisitos de projeto.

Ciclo de Liberação

Jenkins segue a abordagem de LTS (suporte de longo prazo) e lançamentos semanais. Enquanto escrevia este artigo, a versão mais recente disponível do Jenkins lançada em 17 de junho de 2020 era Jenkins 2.235.1. Changelogs para LTS e lançamentos semanais do Jenkins estão disponíveis

aqui

E

aqui

.

Para usar o Travis CI, você só precisa

instalar dependências

. Não há liberação perse no que diz respeito ao Travis CI. Para fazer isso, tudo o que você precisa fazer é adicionar um arquivo YAML simples (.travis.yml) ao diretório raiz do repositório.

Código aberto x comercial

Além dos recursos, o preço é outro fator importante que você deve considerar ao escolher a ferramenta CI / CD ideal para testes de DevOps. Embora o uso do Jenkins seja totalmente gratuito, apenas o Travis CI para projetos de código aberto é gratuito.

Travis CI Enterprise tem planos mensais e anuais. O preço é dividido em quatro categorias diferentes:

  • Bootstrap
  • Comece
  • Pequenos negócios
  • Premium (para equipes grandes)

Mais detalhes sobre os preços do Travis CI estão disponíveis

aqui

. Jenkins é amplamente preferido por startups em estágio inicial (bem como em estágio de crescimento), pois apenas o custo de infraestrutura está envolvido para usar o Jenkins.

Snapshot de comparação Travis CI vs Jenkins

Aqui está o instantâneo da comparação entre Travis CI e Jenkins:

Travis CI vs Jenkins: qual ferramenta de CI / CD você deve escolher?

Uma coisa que fica clara na comparação entre Travis CI e Jenkins é que os dois produtos têm recursos muito bons. O Travis CI tem uma vantagem superior sobre o Jenkins se você estiver usando o GitHub para controle de versão devido à sua forte integração com o GitHub. Por outro lado, Jenkins está em desenvolvimento e uso há muitos anos e também é usado por startups (e grandes empresas). Além dos recursos, você também deve olhar para o preço e competência interna ao listar a ferramenta CI / CD, o mesmo também se aplica no caso do Travis CI vs Jenkins.

Curiosidade: você pode integrar os pipelines Jenkins e Travis CI com o LambdaTest

Nuvem Selenium Grid

de mais de 2.000 navegadores reais para desktop e celular para garantir ciclos de lançamento mais rápidos e robustos. Confira todas as integrações do LambdaTest CI / CD.

Travis CI vs Jenkins tem sido uma discussão debatida entre os profissionais de DevOps em vários fóruns online.