lib/hanzo/modules/deploy.rb in hanzo-0.5 vs lib/hanzo/modules/deploy.rb in hanzo-0.6

- old
+ new

@@ -2,27 +2,21 @@ class Deploy < Base # Classes UnknownEnvironment = Class.new(StandardError) UninstalledEnvironment = Class.new(StandardError) - # Constants - MIGRATION_COMMANDS = { - 'db/migrate' => 'rake db:migrate', - 'priv/repo/migrations' => 'mix ecto.migrate' - } - protected def initialize_variables @env = extract_argument(1) @env ||= Hanzo::Installers::Remotes.environments.keys.first end def initialize_cli initialize_help && return if @env.nil? - deploy && run_migrations + deploy && run_after_deploy_commands rescue UnknownEnvironment Hanzo.unindent_print "Environment `#{@env}` doesn't exist. Add it to .hanzo.yml and run:\n hanzo install remotes", :red Hanzo.unindent_print "\nFor more information, read https://github.com/mirego/hanzo#install-remotes", :red rescue UninstalledEnvironment Hanzo.unindent_print "Environment `#{@env}` has been found in your .hanzo.yml file. Before using it, you must install it:\n hanzo install remotes", :red @@ -46,31 +40,30 @@ branch = Hanzo.ask("Branch to deploy in #{@env}:") { |q| q.default = 'HEAD' } Hanzo.run "git push -f #{@env} #{branch}:master" end - def run_migrations - return if migration_directory.nil? - return unless Hanzo.agree('Run database migrations?') + def run_after_deploy_commands + return unless after_deploy_commands.any? - Hanzo.run "heroku run #{migration_command} --remote #{@env}" + after_deploy_commands.each do |command| + next unless Hanzo.agree("Run `#{command}` on #{@env}?") + Hanzo.run "heroku run #{command} --remote #{@env}" + end + Hanzo.run "heroku ps:restart --remote #{@env}" end + def after_deploy_commands + Hanzo.config['after_deploy'] || [] + end + def validate_environment_existence! raise UnknownEnvironment unless fetcher.exist? raise UninstalledEnvironment unless fetcher.installed? end def fetcher @fetcher ||= Hanzo::Fetchers::Environment.new(@env) - end - - def migration_directory - MIGRATION_COMMANDS.keys.find { |directory| Dir.exist?(directory) } - end - - def migration_command - MIGRATION_COMMANDS[migration_directory] end end end