Eu sou muito novo no Git e estou planejando contribuir com algum projeto de código aberto no GitHub depois de descobrir um pequeno erro nele. Ao bifurcar e corrigir o erro, propus uma solicitação de pull e percebi o seguinte:
Falha - A construção do Travis CI falhou
Analisando os detalhes, descobri que era causado por Could not find .travis.yml
, o que fazia todo o sentido, já que eu não tinha assinado o Travis Cl com e adicionado .travis.yml ao repositório.
É a primeira vez que ouço falar do Travis e do que é conhecido como integração contínua. E parece muito legal, então, para aprender mais sobre isso, pesquisei na Wikipedia.
Travis CI é um serviço de integração contínua distribuído e hospedado usado para construir e testar projetos hospedados no GitHub. O Travis CI detecta automaticamente quando um commit foi feito e enviado para um repositório GitHub que está usando o Travis CI, e cada vez que isso acontecer, ele tentará construir o projeto e executar testes . Isso inclui commits para todos os branches, não apenas para o branch master.
Meu entendimento atual do Travis CI é que o que ele faz é empurrar o projeto automaticamente git commit -am ".."
e eu não entendo muito bem alguma parte dele.
Ao construir o projeto e executar testes , quais testes serão executados? E como isso vai "construir" o projeto? (como compilá-lo para binário?)
Ele afirma que "Isso inclui commits para todos os branches" - mas e se eu não quiser fazer commit de todos os branches?
Tudo bem se eu não usar o Travis Cl? Em que circunstâncias é melhor usá-lo (ou deve ser usado)?
Como você já descobriu o que é Travis-CI, gostaria de apontar diretamente para as suas dúvidas.
No
.travis.yml
arquivo a, você está especificando seu sistema operacional, a linguagem de programação, seu branch repo, o nome do arquivo do projeto e outros detalhes. Ao ler este arquivo, Travis-CI usará os compiladores específicos instalados em seu servidor para compilar nosso código. Provavelmente eles terão o mesmo mecanismo que temos para o Github. Pela primeira vez, eles podem puxar o código [se tivermos especificado ramificações específicas, eles podem puxar o código apenas dessas ramificações]. Além disso, nos autenticamos para usar nossa conta com o Travis-CI, sempre que fizermos um commit, deverá haver alguma notificação que deve ser disparada no servidor Travis-CI, portanto, será reconhecido como um commit e começará a compilar.Você pode especificar diferentes ramos ou o
master
ramo. E deve apenas compilar os ramos específicos especificados no.travis.yml
arquivo.Sim, está tudo bem. Não é grande coisa. Mas quais benefícios você perderá por não usar esse mecanismo fácil de integrar com seu repo. Toda vez que você confirma, pode ser possível que algo perca e não seja compilado por causa de um código. Como você vai saber? Portanto, você deve usar o Travis-CI.
Eu escrevi uma postagem no blog que você pode ler para saber o que é Travis-CI, Integrações Contínuas e como vincular o Travis-CI ao seu repositório Github. Eu o escrevi para um repositório Swift.
fonte
Acho que estou em uma posição muito boa para responder a sua pergunta, pois estou aprendendo o Travis CI no momento. O primeiro problema que você encontrou em primeiro lugar é porque o projeto para o qual você está contribuindo está usando o Travis CI para testar e construir o projeto. Se o projeto não estiver usando o Travis CI, você não teria encontrado esse erro.
A solução é conferir o site do Travis CI e saber como ele funciona e como afetou o projeto em que você está trabalhando. Isso o colocará em uma posição muito boa para entender o que está falhando em seu código e como corrigi-lo.
Para responder à primeira pergunta sobre a construção do projeto.
Significa como o código-fonte é processado antes do uso / teste. Depende do idioma que você está escrevendo. Por exemplo, se o projeto estiver escrevendo com PHP. Não vai construir meu código em um arquivo executável como o código-fonte C / C ++. Ele executará meu código PHP no interpretador PHP e o testará enquanto o faz. Ele ainda passa pelo processo normal de compilação pelo qual sua linguagem preferida passa.
fonte