Simple RubyGem for tagging and deploying versioned releases of an application to Heroku with the ability to do rollbacks.
Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 16 commits behind peter:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
Gemfile.lock
README.rdoc
Rakefile
heroku_release.gemspec

README.rdoc

Heroku Release

Simple RubyGem for tagging and deploying versioned releases of an application to Heroku with the ability to do rollbacks.

Usage

If you are using Bundler, add a gem dependency like this:

group :development, :test do
  gem 'heroku_release', '~> version known to work'
end

Require the Rake tasks in your Rakefile:

require 'heroku_release/tasks'

You have a few configuration options. If you are using a Git remote other than “heroku” then you must configure that. You can choose to have the release version written to a file on deploy so you can check the version on the live server. You can also choose to have a CHANGELOG file auto-generated. Here is a configuration example:

HerokuRelease.config.heroku_remote = "production" # git remote for heroku, defaults to "heroku"
HerokuRelease.config.version_file_path = "public/version" # if not set no version file will be generated
HerokuRelease.config.changelog_path = "CHANGELOG" # if not set no changelog file will be generated

To deploy the master branch to production, use the heroku_release rake task:

rake heroku_release COMMENT="This is a comment describing what changed since the last release"

If the deploy went horribly wrong and you need to do a rollback you can do so:

rake heroku_release:rollback

In order to see the changelog:

rake heroku_release:log

To examine git commits since the last release you can do:

rake heroku_release:pending

TODO

It seems Heroku is working on incorporating rollback functionality into the heroku command. Something to look into…

Credit

This gem was inspired by this gist.