59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/executive.rb', line 59
def self.deploy
if File.exists?(".deployed_revision")
deployed_revision = File.read(".deployed_revision").chomp
migrations_present = (`git log #{deployed_revision}..HEAD -- db/migrate/` != "")
seeds_changed = (`git log #{deployed_revision}..HEAD -- db/fixtures/` != "")
env_changed = (`git log #{deployed_revision}..HEAD -- .env` != "")
else
migrations_present = true
seeds_changed = true
env_changed = true
end
puts ">> Deploying Development".green
if migrations_present
puts ">> Running Migrations".green
ensure_system_call("foreman run rake db:migrate")
else
puts ">> Skipping Migrations".yellow
end
if seeds_changed
puts ">> Updating DB Seeds".green
ensure_system_call("foreman run rake db:seed_fu")
else
puts ">> Skipping DB Seeding".yellow
end
if env_changed
puts ">> Restarting Foreman".green
begin
foreman_pid = `ps aux | grep 'executive'`.split("\n").first.split(" ")[1]
Process.kill "HUP", foreman_pid.to_i
rescue NoMethodError => e
puts "Foreman isn't running. Run script/start.".red
end
else
puts ">> Skipping Foreman Restart".yellow
end
File.open(".deployed_revision", "w+") { |f| f << `git rev-parse HEAD` }
puts ">> Recorded Deployed Revision".green
end
|