Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintenance mode never comes on #72

Open
ThisIsMissEm opened this issue Dec 2, 2014 · 2 comments
Open

Maintenance mode never comes on #72

ThisIsMissEm opened this issue Dec 2, 2014 · 2 comments

Comments

@ThisIsMissEm
Copy link

Hi, I've got a deploy.rake file that looks like that:

require 'paratrooper'

namespace :deploy do
  desc 'Deploy app in production environment'
  task :production do
    admin = Paratrooper::Deploy.new("nts-admin", maintenance: true)
    api = Paratrooper::Deploy.new("nts-api", maintenance: true)

    puts "Activating Maintenance Mode…"
    admin.activate_maintenance_mode
    api.activate_maintenance_mode

    puts "Deploying nts-admin…"
    admin.push_repo
    admin.run_migrations
    admin.app_restart

    puts "Deploying nts-api…"
    api.push_repo
    api.run_migrations
    api.app_restart

    puts "Deactivating Maintenance Mode…"
    admin.deactivate_maintenance_mode
    api.deactivate_maintenance_mode

    puts "Warming…"
    admin.warm_instance
    api.warm_instance

    puts "Notifying New Relic…"
    system 'curl -H [...] https://api.newrelic.com/deployments.xml > /dev/null 2>&1'
    system 'curl -H [...] https://api.newrelic.com/deployments.xml > /dev/null 2>&1'
  end
end

Everything works, apart from maintenance mode never switching on. (And yes, this is a single repo to multiple app deploy).

@mattpolito
Copy link
Owner

Cool to see a slightly different use of paratrooper.

Off the top of my head I don't see a reason why maintenance mode would not work for you. With that being said, is there anything in your normal deploy (like a long running migration) that would cause the deploy to run longer than normal?

If not, there is no reason to run maintenance mode or warming a dyno. Heroku doesn't work in the same way as it did when I originally created paratrooper. I'm currently in the process of removing those things for the next version.

@ThisIsMissEm
Copy link
Author

I’ve since switched to a simple bash version:

#!/usr/bin/env bash
echo "Activating Maintenance Mode for Admin…"
heroku maintenance:on --app admin

git push nts-api master
heroku run rake db:migrate --app api
heroku ps:restart --app api

git push nts-admin master
heroku ps:restart --app admin

ecocho "Deactivating Maintenance Mode…"
heroku maintenance:off --app admin

echo "Notifying New Relic…"
curl -H “KEY" -d "deployment[app_name]=api" https://api.newrelic.com/deployments.xml > /dev/null 2>&1
curl -H “KEY" -d "deployment[app_name]=admin" https://api.newrelic.com/deployments.xml > /dev/null 2>&1

Essentially, I was using maintenance mode to prevent the admin panel from changing data
whilst the API which runs the migrations was deploying. I probably don’t need the ps:restart
on Admin there either.

On 3 Dec 2014, at 7:58 pm, Matt Polito [email protected] wrote:

Cool to see a slightly different use of paratrooper.

Off the top of my head I don't see a reason why maintenance mode would not work for you. With that being said, is there anything in your normal deploy (like a long running migration) that would cause the deploy to run longer than normal?

If not, there is no reason to run maintenance mode or warming a dyno. Heroku doesn't work in the same way as it did when I originally created paratrooper. I'm currently in the process of removing those things for the next version.


Reply to this email directly or view it on GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants