Como fazer o deploy e rodar os testes automaticamente usando o Codeship

Para que serve? Se encaixa na sua necessidade?

Se você precisa constantemente fazer deploy da sua aplicação de maneira segura (rodando os testes antes) então o Codeship pode ser o caminho para você. Ele detecta quando você faz um git push para a branch de sua escolha, roda os testes que você deixou pré definidos na plataforma dele e se os testes passarem ele faz o deploy para o servidor de sua preferência como por exemplo Aws, Heroku ou algum servidor particular via capistrano ou script personalizado. Sim é bem legal e tem um plano free!

O que vamos aprender?

Como integrar nosso projeto (rails, mas você pode user outros frameworks 🙂 ) com o Codeship para poder fazer os testes e o deploy automaticamente para o Heroku.

Ingredientes
Objetivos (Passo a Passo)
  • Criar um projeto usando Rails 5
  • Criar um repositório no Github para o nosso projeto
  • Criar um App no heroku
  • Criar uma aplicação no Codeship e fazer o Deploy (e testes)
Mãos a Obra \o/
Criar um projeto usando Rails 5
  1. Para instalar usando Rails 5, rode no terminal:
  2. Verifique se a versão do Rails é realmente a 5 rodando:
  3. Crie o projeto, rodando:

    *O postgresql é obrigatório porque o Heroku não aceita o sqlite3, então garanta que você tem ele instalado na sua máquina, caso não tenha instale.
  4. Agora crie um controller, rodando:
  5. Vá até o seu arquivo config/routes.rb e substitua o conteúdo por:
  6. Coloque seu user e password  do postgreSql no arquivo config/database.yml:
    captura-de-tela-de-2016-10-14-20-53-31
  7. Crie o banco de dados rodando:
  8. Agora rode o app e acesse o http://localhost:3000 para ver o conteúdo:

    O resultado deve ser este:
    captura-de-tela-de-2016-10-14-19-20-27
  9. \o/ Pronto nosso App de teste está pronto, vamos para o próximo passo.

*Como de costume se você quiser acessar o código completo desse pequeno App para referência, acesse esse link.

Criar um repositório no Github para o nosso projeto
  1. Acesse esse -> link <- para o Github e entre na sua conta ou crie uma.
  2. Na página principal do Github clique em “New Repository”
    captura-de-tela-de-2016-10-14-19-24-16
  3. Agora escolha um nome para o seu repositório e clique em “Create Repository”
    captura-de-tela-de-2016-10-14-19-26-11
  4. Agora na pasta do projeto que criamos no passo anterior, vamos iniciar o git rodando:
  5. Agora vamos adicionar as nossas mudanças, rodando os dois comandos:
  6. Para conectar a pasta com o Github, rode esse comando substituindo SEU_USUARIO pelo seu usuário no Github e NOME_DO_SEU_PROJETO pelo nome do projeto que você criou no Github.
  7. Pronto, estamos chegando lá \o/.
Criar um App no Heroku
  1. Acesse esse -> link <- para o Heroku  e entre na sua conta ou crie uma.
  2. Agora, no seu dashboard clique no botão “New” depois “Create App”
    captura-de-tela-de-2016-10-14-19-36-39
  3. Agora escolha um nome e clique em “Create App”
    captura-de-tela-de-2016-10-14-19-38-52
  4. Agora acesse o link para o “Account” clicando aqui.
  5. Vá até “Api Key” e guarde a chave para usarmos em breve
    captura-de-tela-de-2016-10-14-20-04-30
  6. \o/ Pronto, vencemos mais uma etapa.

Criar uma aplicação no Codeship e fazer o Deploy (e testes)

  1. Acesse esse -> link <- para o Codeship  e entre na sua conta ou crie uma usando o Github.
  2. Agora crie um projeto clicando em “Projects” na barra superior depois em “Create a new Project” ou outro botão que esteja disponível nesse sentido.
    captura-de-tela-de-2016-10-14-19-45-32
  3. Agora clique no simbolo do “Github”
    captura-de-tela-de-2016-10-14-19-47-10
  4. Coloque a URL para o seu projeto no Github e clique em “Connect”:
    captura-de-tela-de-2016-10-14-19-48-09
  5. Agora na tela que apareceu você pode configurar seus testes, build e etc, vamos lá.
  6. Primeiro escolha a sua plataforma, no caso desse exemplo, ruby on rails:
    captura-de-tela-de-2016-10-14-19-52-43
  7. Agora em “Setup Coomands”, você pode escolher os comandos para preparar o seu App, como por exemplo rake db:migrate (no exemplo vamos deixar o default)
    captura-de-tela-de-2016-10-14-19-54-01
  8. E finalmente, em “Test Commands” você pode colocar os comandos para rodar os testes da sua aplicação como por exemplo “bundle exec rspec” (no exemplo vamos deixar o default)
    captura-de-tela-de-2016-10-14-19-54-29
  9. Agora clique em “Save and Go to Dashboard”
  10. Pronto, na tela que apareceu clique em “Project Settings” e depois em “Deployment”
    captura-de-tela-de-2016-10-14-20-01-27
  11. Agora escolha a branch “master” e clique em “Save pipelines” settings.
    captura-de-tela-de-2016-10-14-20-03-08
  12. Essas são as opções de deploy, escolha o Heroku.
    captura-de-tela-de-2016-10-14-20-03-48
  13. Agora coloque o nome do App que você criou no heroku e depois aquela chave que pegamos no heroku e que eu disse para você guardar que usaríamos em breve, esse é o momento meu caro :), depois clique em “Create Deployment”
    captura-de-tela-de-2016-10-14-20-36-32
  14. Pronto, o resultado deve ser este:
    captura-de-tela-de-2016-10-14-20-05-46
  15. Agora vá para o dashboard do seu projeto clicando no link a baixo do menu do lado esquerdo (seu_user/nome_do_seu_projeto):
    captura-de-tela-de-2016-10-14-20-19-18
  16. Você deve ver que o codeship agora está esperando pelo seu git push para poder rodar os testes e fazer o deploy, vamos lá:
    captura-de-tela-de-2016-10-14-20-15-52
  17. Agora para ativar o trigger do codeship, vamos fazer o git push, rode:

    *Caso ele peça suas credenciais, use as mesmas do Github.
  18. Pronto, agora vá até o seu dashboard no Codeship e note que ele está rodando “running” os builds, testes e o deploy.
    captura-de-tela-de-2016-10-14-20-29-28
  19. Agora existem dois caminhos, ou tudo vai dar certo e ele vai fazer o deploy, ou ele vai falhar por algum motivo simples de corrigir como por exemplo, você pode ter colocado suas credenciais do heroku incorretamente ou até mesmo o nome incorreto do seu app do heroku. Outras causas de erro podem ser por exemplo os testes da sua aplicação que rodaram mas não passaram (os testes falharam) ou o seus builds tiveram algum problema.
    De qualquer forma, você só precisa alterar no seu App do codeship no menu “Project Settings” seus builds, ou testes ou informações para o deploy.
  20. \o/ Pronto ele fez o deploy.
    captura-de-tela-de-2016-10-14-21-11-27
  21. Agora acesse a URL do App que você criou no heroku “https://NOME_DO_SEU_APP.herokuapp.com/”, no caso desse exemplo https://codeshipexample.herokuapp.com/.
    captura-de-tela-de-2016-10-14-21-13-21
  22. Parabéns, nós conseguimos 🙂
Conclusão

Usar o Codeship pode fazer a diferença no seu dia a dia de programação e te economizar muito tempo e paciência.
O Codeship tem muitas opções de deploy e te permite fazer uma infinidade de testes, então explore um pouco mais a plataforma e compartilhe suas opiniões e dúvidas comigo ou comentando aí em baixo ou me adicionando no Facebook (clicando aqui).

Se você não viu o Screencast de ontem sobre o Action Cable, clique aqui e assista “COMO CRIAR UM CHAT EM TEMPO REAL USANDO ACTION CABLE (RAILS 5)” 🙂

Me faz um favor? Se inscreve no canal do Youtube clicando aqui :). Lá eu lanço um Screencast por semana.
E se possível compartilha esse post com seus amigos, vamos espalhar o conhecimento.

Muito Obrigado,
Sua atenção é uma honra para mim.

Leonardo Scorza

outubro 15, 2016
Feito com s2 por OneBitCode
%d blogueiros gostam disto: