Já pensou o quanto pode agilizar o processo de desenvolvimento e code review se para cada pull request no repositório houvesse um ambiente deployado ?
Com Heroku isso é possível e bem simples graças ao Review Apps.
Antes de mais nada é necessário ter uma conta no Heroku, se você ainda não tem crie a sua
Você também precisará de uma aplicação funcional em um repositório do Github, afinal, temos que deployar algo. Para ilustrar esta postagem usaremos o Gamou, projeto open-source que venho desenvolvendo.
Acesse o dashboard do Heroku e vá em ‘New’ -> ‘Create new app’
Irá aparecer uma tela semelhante a esta, preencha as informações do seu projeto
Em seguida em Deployment Method selecione Github e procure o repositório
Clique em ‘Connect’
Escolha a branch de sua preferência e clique em ‘Enable Automatic Deploys’
E clique em ‘Deploy Branch’
Aguarde o deploy… e pronto! Temos o nosso projeto no ar, clique em ‘Open app’ e abrirá um link semelhante a este https://gamou.herokuapp.com/
Agora iremos configurar os deploys de pull request
Primeiro você precisará criar um arquivo chamado app.json
na raiz do seu repositório
Configure conforme os dados do seu projeto
{
"name": "Gamou",
"description": "Gamou its a gamification project",
"website": "https://gamou.herokuapp.com/",
"success_url": "/",
"addons": ["heroku-postgresql:hobby-dev"],
"env": {
"RAILS_ENV": "production",
"COOKIE_SECRET": {
"description": "This gets generated",
"generator": "secret"
},
"SETUP_BY": {
"description": "Who initiated this setup",
"value": "",
"required": false
}
},
"scripts": {
"postdeploy": "bundle exec rake db:migrate"
}
}
OBS: em scripts você pode configurar comandos personalizados para executar antes ou depois do deploy. No nosso caso estamos rodando uma migration
Atualize o seu App e aguarde o deploy.
Feito isto vá em ‘Pipeline’ -> ‘Settings’ -> ‘Enable Review Apps’
Marque a opção ‘Automatically create review apps for new PRs’
Você também pode adicionar outras configurações conforme a sua preferência
Se tudo deu certo você já está com as Review Apps funcionais, a cada pull request o heroku criará um ambiente novo e no seu Github você verá algo como isto:
Se você quer fazer um comentário ou teve alguma dificuldade, abra uma issue no repositório do blog
Obrigado