Skip to content

A set of scripts and rake tasks facilitating a simple 3-branch deploy process on heroku

Notifications You must be signed in to change notification settings

rosshale/heroku_deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

heroku_deploy

This gem is an easy way to quickly setup and deploy staging and production branches and environments for your project on heroku.

###Installation Instructions Install the gem: sudo gem install heroku_deploy

In environment.rb config.gem "heroku_deploy"

or in your Gemfile gem "heroku_deploy" gem "heroku"

In your Rakefile: begin require 'heroku_deploy' HerokuDeploy::Tasks.new( :staging_app => "example-app-staging", :production_app => "example-app") rescue LoadError puts "heroku_deploy (or a dependency) not available. Install it with: gem install heroku_deploy" end

###Setup and Deploy heroku_deploy assumes that origin/master is your main development branch. It also assumes your heroku credentials are saved in ~/.heroku/credentials Once you have that in place, run:

rake heroku_deploy:setup

This creates two additional branches: staging and production. These branches hold your deploys. It also creates the two heroku apps specified in your Rakefile.

Next, deploy to your staging app:

rake heroku_deploy:staging

Once you've vetted your app at http://example-app-staging.heroku.com, deploy to production:

rake heroku_deploy:production

It's easy!

Doing a deploy will automatically backup and download your code and database in a heroku bundle. To back up without deploying, run:

rake heroku_deploy:backup:staging

or

rake heroku_deploy:backup:production

To skip the backup when deploying to staging or production run set backup=false:

rake heroku_deploy:staging backup=false

To skip maintenance mode set maintenance=false:

rake heroku_deploy:production maintenance=false

You can also define before and after hooks either in your environment or an intializer or pretty much anywhere that gets loaded:

class HerokuDeploy

  def before_staging_deploy
    `rake asset:packager:build_all`
  end

  def after_production_deploy
    `script/move_latest_backup_to_nas`
  end

end

###Coming Soon

  • Rails 3 compatibility
  • Prompts for credentials if you haven't entered them
  • No need to include gem "heroku" in your Gemfile
  • Better error messages if you're trying to create an existing heroku app

About

A set of scripts and rake tasks facilitating a simple 3-branch deploy process on heroku

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages