Cloud Computing

25 mai, 2016

Spring Boot na nuvem, de graça, e com as melhores práticas – Parte 02

Publicidade

Enfim, chegamos à última parte dessa série. Se você perdeu a primeira, clique aqui. Agora, vamos fazer o deploy do projeto no Heroku.

Primeiro, vamos criar a conta no Heroku, caso você ainda não tenha uma. Com a conta criada e logada, iremos criar o app no Heroku:

image-1

image-2

Com o app criado, vamos na aba “Deploy” e selecionamos como “Deployment method” o GitHub:

image-3

Com a conta conectada, é hora de selecionar o repositório desejado:

image-4

É isso aí! Agora vamos adaptar o .travis.yml para deployar no Heroku em caso de sucesso do build \o/

Para concluir, precisamos:

A API key você obtém acessando o item de menu “Manage account”. Com um pouco de scroll, você chega lá (=

image-5

Bom, agora é adicionar o trecho abaixo, com as devidas alterações, no final do seu .travis.yml:

deploy:
  provider: heroku
  api_key: <api-key>
  app: <heroku-app-name>
  on:
    repo: <github-user>/<repo-name>

Opa, temos um problema aqui, né? Não vamos subir uma API key aberta em um repositório público… Precisamos deixá-la segura, e é aqui que entra o Travis CLI que instalamos mais cedo.

Vamos, então, até a raiz do projeto pelo terminal e executamos o comando abaixo:

$ travis encrypt <api-key> --add deploy.api_key

Agora, o trecho de deploy do .travis.yml ficará no formato:

deploy:
  provider: heroku
  api_key: 
    secure:  <hash-gerado>
  app: <heroku-app-name>
  on:
    repo: <github-user>/<repo-name>

Para finalizar tudo, precisamos criar o Procfile  e criar uma task no build.gradle para o Heroku conseguir subir o projeto. Para isso, basta executar os seguintes comandos na raiz do projeto pelo terminal:

$ touch Procfile
$ echo "echo "web: java -Dserver.port=\$PORT \$JAVA_OPTS -jar <path-para-jar-do-projeto>" > Procfile

E adicionar a seguinte task ao seu build.gradle:

task stage {
  dependsOn build
}

Prontinho, terminamos! Agora é só commitar essa última alteração e, se tudo correr conforme o esperado, teremos o app deployado no Heroku após ter sucesso no build pelo Travis-CI.

Para referência, segue:

Espero que tenham gostado! Se ficou alguma dúvida, tem sugestão ou acha que tem alguma coisa errada aí, deixe um comentário abaixo. Até a próxima =)