Skip to content

Nutrebem integration process for Rails or "pure" Rack applications

Notifications You must be signed in to change notification settings

Easyfood/integrate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Objetivo

Este projeto implementa a visão que a nossa equipe acredita ser a melhor forma de trabalhar com controle de versão e deploy do projeto.

Cada ambiente está ligado diretamente a um branch. No nosso caso, temos 3(três) branchs principais:

  • master: é onde fazemos o desenvolvimento das histórias. Não pode ter impedimentos por conta de subidas semanais que fazemos.
  • staging: é o ambiente de testes interno. Sempre que compartilhamos o código, fazemos deploy para esse ambiente.
  • production: é o ambiente usado pelos clientes. Ele é construido a partir do ambiente staging.

Passos da integração

  1. Verifica se tem alguém integrando e bloqueia, caso tenha.
  2. Só executa se não tiver nada para ser commitado.
  3. Limpa a pasta de log e temp, do projeto.
  4. git pull --rebase, para não criar um commit de merge. Consultamos o histórico, os commits de merge atrapalham ;)
  5. Atualizar novas dependências, caso tenha sido adicionada: bundle install
  6. Limpa o ambiente local, para verificar as mirations: rake db:drop db:create db:migrate db:seed db:test:prepare
  7. Roda os testes: rake test
  8. Garante que está na master, só fazemos integração por ela
  9. Garante que a sua branch staging está atualizada e faz rebase da master: git checkout staging" git pull --rebase git rebase master git push origin staging git checkout master
  10. Compartilha o código: git push
  11. Adiciona uma variável no heroku para informar que você está fazendo deploy
  12. Manda a branch staging para o projeto de staging no heroku: git push [email protected]:#{APP}.git staging:master
  13. Roda as migrações no ambiente de staging: heroku run rake db:migrate --app #{APP
  14. Roda o seed: heroku run rake db:seed --app #{APP}
  15. Reinicia o ambiente de staging: heroku restart --app #{APP}
  16. Remove a variável do heroku que informar que você estava fazendo deploy

Como instalar no projeto

  1. Cria o projeto
  2. Cria o projeto local
  3. git init
  4. git commit
  5. Cria o projeto no github(ou qualquer outro) e define ele como origin
  6. Define o origin como upstream da master: git push origin master --set-upstream
  7. Cria dois projetos no Heroku, um para cada ambiente
  8. um com o sufixo -staging
  9. um com o sufixo -production
  10. Adiciona a gem em gem 'integrate', git: '[email protected]:Easyfood/integrate.git'
  11. Criar a branch staging a partir da master: git checkout staging
  12. Define o origin como upstream desse branch: git push origin staging --set-upstream
  13. Criar a branch production a partir da staging: git checkout production
  14. Define o origin como upstream desse branch: git push origin production --set-upstream
  15. Caso precise usar um nome diferente no Heroku, adicione uma task no Rakefile do seu projeto:
task :force_different_name_for_heroku_project do
  ENV['PROJECT'] = 'pre-nutrebem'
end

Rails.application.load_tasks # Se for um projeto Rails

Rake::Task['integration:environment'].enhance [:force_different_name_for_heroku_project]

About

Nutrebem integration process for Rails or "pure" Rack applications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published