Giter Club home page Giter Club logo

heroku_san's Introduction

Heroku San

Helpful rake tasks for Heroku.

<img src=“https://secure.travis-ci.org/fastestforward/heroku_san.png?branch=master” alt=“Build Status” />

Install

Rails 3

Add this to your ‘Gemfile`:

group :development do
  gem 'heroku_san'
end

Rails 2

To install add the following to ‘config/environment.rb`:

config.gem 'heroku_san'

Rake tasks are not automatically loaded from gems, so you’ll need to add the following to your ‘Rakefile`:

begin
  require 'heroku_san/tasks'
rescue LoadError
  STDERR.puts "Run `rake gems:install` to install heroku_san"
end

Sinatra

Update your ‘Gemfile`:

group :development do
  gem 'heroku_san'
end

Update your ‘Rakefile`:

require "bundler/setup"
require "heroku_san"
config_file = File.join(File.expand_path(File.dirname(__FILE__)), 'config', 'heroku.yml')
HerokuSan.project = HerokuSan::Project.new(config_file, :deploy => HerokuSan::Deploy::Sinatra)
load "heroku_san/tasks.rb"

Configure

In ‘config/heroku.yml` you will need to add the Heroku apps that you would like to attach to this project. You can generate this file by running:

Rails 3

rails generate heroku_san

Everything else

rake heroku:create_config

Customize the file for your project. If this is a fresh project, ‘heroku_san` can create all the applications for you, and set each one’s RACK_ENV.

rake all heroku:create heroku:rack_env

Configure your Heroku apps according to ‘config/heroku.yml` by running:

rake all heroku:config

Usage

After configuring your Heroku apps you can use rake tasks to control the apps.

rake production deploy

A rake task with the shorthand name of each app is now available and adds that server to the list that subsequent commands will execute on. Because this list is additive, you can easily select which servers to run a command on.

rake demo staging restart

A special rake task ‘all’ is created that causes any further commands to execute on all Heroku apps.

Manipulate collaborators on all this project’s apps (prompts for email address):

rake all heroku:share
rake all heroku:unshare

Need to add remotes for each app?

rake all heroku:remotes

A full list of tasks provided:

rake heroku:addons                # Install addons for the application.
rake heroku:addons:local          # List configured addons, without installing them
rake heroku:apps                  # Lists configured apps
rake heroku:apps:local            # Lists configured apps without hitting heroku
rake heroku:config                # Add config:vars to each application.
rake heroku:config:list           # Lists config variables as set on Heroku
rake heroku:config:list:local     # Lists local config variables without setting them
rake heroku:config:rack_env       # Add proper RACK_ENV to each application
rake heroku:console               # Opens a remote console
rake heroku:create                # Creates the Heroku app
rake heroku:create_config         # Creates an example configuration file
rake heroku:db:migrate            # Migrates and restarts remote servers
rake heroku:db:pull               # Pull database from stage to local dev database
rake heroku:deploy[commit]        # Pushes the given commit, migrates and restarts (default: HEAD)
rake heroku:deploy:after          # Callback after deploys
rake heroku:deploy:before         # Callback before deploys
rake heroku:deploy:force[commit]  # Force-pushes the given commit, migrates and restarts (default: HEAD)
rake heroku:logs                  # Shows the Heroku logs
rake heroku:logs:tail             # Tail the Heroku logs (requires logging:expanded)
rake heroku:maintenance           # Enable maintenance mode
rake heroku:maintenance_off       # Disable maintenance mode
rake heroku:maintenance_on        # Enable maintenance mode
rake heroku:push[commit]          # Pushes the given commit (default: HEAD)
rake heroku:push:force[commit]    # Force-pushes the given commit (default: HEAD)
rake heroku:rake[task]            # Runs a rake task remotely
rake heroku:remotes               # Add git remotes for all apps in this project
rake heroku:restart               # Restarts remote servers
rake heroku:share                 # Adds a collaborator (asks for email)
rake heroku:unshare               # Removes a collaborator (asks for email)
rake heroku:stage:all             # Select all Heroku apps for later command

Frequently used tasks are aliased into the global namespace:

task :all           => 'heroku:stage:all'
task :deploy        => 'heroku:deploy'
task 'deploy:force' => 'heroku:deploy:force'
task :before_deploy => 'heroku:deploy:before'
task :after_deploy  => 'heroku:deploy:after'
task :console       => 'heroku:console'
task :restart       => 'heroku:restart'
task :migrate       => 'heroku:db:migrate'
task :logs          => 'heroku:logs:default'
task 'logs:tail'    => 'heroku:logs:tail'
Homepage

github.com/fastestforward/heroku_san

Issue Tracker

github.com/fastestforward/heroku_san/issues

Contributors

License

License

Copyright © 2008-2012 Elijah Miller <[email protected]>, released under the MIT license.

heroku_san's People

Contributors

kmayer avatar jqr avatar hsbt avatar bryan-ash avatar rahearn avatar copyhacker avatar leshill avatar mdub avatar dmathieu avatar ryanwood avatar mrhaddad avatar spraints avatar matschaffer avatar lsemel avatar jellybob avatar johnbeynon avatar jberlinsky avatar glennr avatar bjhess avatar andyhite avatar

Stargazers

 avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.