# Jumpup-heroku [![RubyGems][gem_version_badge]][ruby_gems] Rake tasks to deploy any Rails application on [Heroku](http://heroku.com) using [Jumpup](https://github.com/Helabs/jumpup). ## Instalation Add to your gem file. ```ruby gem 'jumpup-heroku' ``` Without groups on Gemfile, because of initializer. ## Usage 1. Create the initializer on `config/initializers/jumpup-heroku.rb` ```ruby # config/initializers/jumpup-heroku.rb Jumpup::Heroku.configure do |config| config.app = 'myapp' end if Rails.env.development? ``` 2. Add to the tasks on jumpup.rake the tasks to deploy on Heroku: ```ruby # lib/tasks/jumpup.rake INTEGRATION_TASKS = %w( jumpup:heroku:start jumpup:start jumpup:bundle_install db:migrate spec jumpup:coverage_verify jumpup:finish jumpup:heroku:finish ) ``` ### Production and staging apps Have production and staging app? Do like this: ```ruby Jumpup::Heroku.configure do |config| config.staging_app = 'myapp-staging' config.production_app = 'myapp' end if Rails.env.development? ``` The branch send to staging app is `master` and the branch send to production is the `production`. ### Using heroku accounts If you use [Heroku Accounts](https://github.com/ddollar/heroku-accounts) ```ruby # config/initializers/jumpup-heroku.rb Jumpup::Heroku.configure do |config| config.account(:name_of_account1) do |account1| account1.app = 'myapp1' end config.account(:name_of_account2) do |account2| account2.app = 'myapp2' account2.run_database_tasks = false # Default: true end end if Rails.env.development? ``` ### Database tasks If you need to disable remote database tasks (backup, migrate and seed): ```ruby Jumpup::Heroku.configure do |config| config.app = 'myapp' config.run_database_tasks = false # Default: true end if Rails.env.development? ``` ### Deploy to production #### When I have a single app Run ```rake jumpup:heroku:deploy:production``` or as an alias ```rake integrate:production``` #### When I have staging and production apps We have the following config | Branch | App Environment | | ------------- |-----------------| | master | staging | | production | production | So to send to production we need to ```bash $ git checkout production $ git merge master $ git push -u origin production ``` And send to Heroku with ```rake jumpup:heroku:deploy:production``` or as an alias ```rake integrate:production``` ## Versioning Jumpup-heroku follow the [Semantic Versioning](http://semver.org/). ## Issues If you have problems, please create a [Github Issue](https://github.com/Helabs/jumpup-heroku/issues). ## Contributing Please see [CONTRIBUTING.md](https://github.com/Helabs/jumpup-heroku/blob/master/CONTRIBUTING.md) for details. ## Maintainers - [Thiago Belem](https://github.com/TiuTalk) ## Release Follow this steps to release a new version of the gem. 1. Test if everything is running ok; 1. Change version of the gem on `VERSION` constant; 1. Add the release date on the `CHANGELOG`; 1. Do a commit "Bump version x.x.x", follow the semantic version; 1. Run `$ rake release`, this will send the gem to the rubygems; 1. Check if the gem is on the rubygems and the tags are correct on the github; ## Credits Jumpup-heroku is maintained and funded by [HE:labs](http://helabs.com.br/opensource/). Thank you to all the [contributors](https://github.com/Helabs/jumpup-heroku/graphs/contributors). ## License Jumpup-heroku is Copyright © 2013-2014 HE:labs. It is free software, and may be redistributed under the terms specified in the LICENSE file. [gem_version_badge]: https://badge.fury.io/rb/jumpup-heroku.png [ruby_gems]: http://rubygems.org/gems/jumpup-heroku