Integração Contínua com o Snap CI
Criado por Akshay Karle, @akshay_karle
Traduzido por Emerson Rocha Luiz, @fititnt
O que é essa coisa de Implantação Contínua?
Implantação contínua, do inglês continuous deployment, é parte do ‘movimento’ de entrega contínua, do inglês continuous delivery. A ideia por trás da entrega contínua é de automatizar o processo de entrega de software tanto quanto possível.
Com uma cadeia de implantação contínua funcionando direito você garantirá que que implementações usando Git (tudo que for commitado deve ser testado, e tudo precisa ser testado para poder ser implantado), tornando mais fácil a colaboração e implantação mais rápida. Assim, você pode se concentrar em fazer o seu aplicativo ainda mais impressionante!
Há algumas grandes empresas que estão navegando nessa onda contínua, e neste tutorial vamos configurar implantação contínua para para nossa aplicação em Ruby on Railsdo GitHub para Heroku, usando o Snap CI.
COACH: Fale sobre os benefícios da implantação contínua.
Assine o Snap CI
Em primeiro lugar você precisa de uma conta do Snap CI. Assine a conta do Snap CI com Github. Snap CI precisa acessar seus repositórios no Github para ser capaz de configurá-los, por isso certifique-se de permitir o acesso.
De volta ao snap CI, vamos criar o seu primeiro pipeline. O primeiro passo é selecionar GitHub como seu provedor de repositório. Na lista de seus repositórios GitHub, procure o repositório que deseja configurar e selecione-o. No nosso caso, é o com nome semelhante a “railsgirls”.
Assim que você selecionar o repositório que deseja contruir, Snap CI irá realizar detecções de seu repositório e fará melhor tentativa de configurar automaticamente o seu pipeline de implantação para você que vai permitir que você executar os testes e implementações.
Depois de alguns segundos, o Snap CI iniciará automaticamente a construção de seu repositório, e neste momento você pode clicar através da configuração estágios pelo Snap para ver quais comandos são executados.
Às vezes, porém, o Snap pode não ser capaz de detectar os comandos corretos para construir e testar seu repositório. Nesses casos, você pode editar sua configuração de pipeline ao visitar a página de configuração a partir da página de contrução do seu recém criadodo em <lang=”en”>pipeline</em> ao clicar em “Edit” para editar seu em <lang=”en”>pipeline</em>. Agora você pode adicionar ou editar uma etapa de contrução existente e executar todos os testes para a sua aplicação.
Se você se sentir inseguro de estágios que você deve adicionar, você pode olhar nas as diferentes receitas de construção previstas na sub-categoria de Ruby quando for adicionar de uma etapa para descobrir qual comandos devem ser executados para construir corretamente e testar a sua aplicação. Você também pode dar uma olhada no manual de introdução na documentação do Snap CI.
Assim que você tiver terminado de editar a configuração do pipeline clique em ‘Save’. Isto irá salvar sua configuração e automaticamente disparar uma nova contrução. Agora você deve ter uma contrução verde se todos os seus testes passarem :)
Caso você tenha qualquer falhas em testes, porém, você pode resolver isto e enviar as alterações para o Github:
git add .
git commit -m "fix tests"
git push origin master
Snap CI irá automaticamente detectar alterações no Github e executar uma nova instância do seu pipeline. Neste ponto você já estará testando seu código
Configuração de Implantação Contínua
O próximo passo é distribuir a sua aplicação. Existem várias plataformas para implantar, porém por agora, vamos olhar como você pode implantar a Heroku, já que é a mais fácil.
Vá novamente para a sua página de edição de configuração de pipeline e adicione uma nova etapa. Desta vez, selecione a categoria “Deploy” das receitas na esquerda. Selecione a receita “Basic” na subcategoria do Heroku.
Envie o nome de etapa de sua preferência (i.e. deploy, go-live, etc.), mantenha o gatilho automatico e então clique em “Run as” no menu para entrar no Heroku. Execute uma etapa de cadastro ao autorizar o Snap CI. Você deverá retornar automaticamente para o Snap CI após a autorização. Você poderá agora selecionar a aplicação Heroku onde você deseja fazer a entrega ou criar uma nova aplicação dentro do próprio Snap CI. Selecione a caixa de seleção ‘Perform DB migrate’ e salve sua configuração.
Isto deverá disparar uma nova contrução no Snap CI, mas desta vez ele executará uma nova etapa que você acabou de criar criar que rá enviar ao Heroku. Assim que esse pipeline ficar verde, visite a página da aplicação Heroku onde você enviou do Snap CI e sua aplicação em rails deverá estar online em alguns minutos.
A partir daqui, qualquer nova alteração que você fizer e enviar para seu Github será testada e entregue automaticamente pelo Snap CI.