Skip to content

@juandazapata /heroku_deploy_tasks.rake
Last active

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
# =============================================================
# REQUIREMENTS
# =============================================================
# - Heroku toolbelt installed in your system
# - A heroku remote named `staging`.
# - A heroku remote named `production`.
# =============================================================
namespace :h do
# -------------------------------------------------------------
# DEPLOY
# -------------------------------------------------------------
# It deploys the current branch to heroku and runs the DB
# migrations.
# -------------------------------------------------------------
# rake h:deploy staging
# rake h:deploy production
desc 'Deploy the app'
task :deploy do
environment = ARGV.last
Bundler.with_clean_env { sh "heroku maintenance:on -r #{environment}" }
Bundler.with_clean_env { sh "git push #{environment} HEAD:master -f" }
Bundler.with_clean_env { sh "heroku run rake db:migrate -r #{environment}" }
Bundler.with_clean_env { sh "heroku restart -r #{environment}" }
Bundler.with_clean_env { sh "heroku maintenance:off -r #{environment}" }
task environment.to_sym do ; end
end
# -------------------------------------------------------------
# RESTART
# -------------------------------------------------------------
# rake h:restart staging
# rake h:restart production
desc 'Restart the app'
task :restart do
environment = ARGV.last
Bundler.with_clean_env { sh "heroku restart -r #{environment}" }
task environment.to_sym do ; end
end
# -------------------------------------------------------------
# LOGS
# -------------------------------------------------------------
# Run the logs in `tail` mode.
# -------------------------------------------------------------
# rake h:logs staging
# rake h:logs production
desc 'Tail the logs for the app'
task :logs do
environment = ARGV.last
Bundler.with_clean_env { sh "heroku logs -t -r #{environment}" }
task environment.to_sym do ; end
end
# -------------------------------------------------------------
# CLEAR THE CACHE
# -------------------------------------------------------------
# Runs the heroku console and executes a `Rails.cache.clear`
# command.
# -------------------------------------------------------------
# rake h:cache staging
# rake h:cache production
desc 'Clears the Rails cache for the app'
task :cache do
environment = ARGV.last
Bundler.with_clean_env { sh "heroku run rake h:clear_cache_task -r #{environment}" }
task environment.to_sym do ; end
end
task :clear_cache_task => :environment do
Rails.cache.clear
end
end
@jelder

If you have to clear your cache on every deploy, you're doing something wrong.

@juandazapata
Owner

@jelder yeah you're right, I added it for reference only, but you're totally right. I'm updating it.

@dipth

Correct me if I'm wrong, but I believe you need to restart the app after running a database migration.

@juandazapata
Owner

@dipth you're right. Otherwise you'll see forms that don't save. Thanks for the observation. I'm updating it again :)

@jboyens

Why not just use Heroku San?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.