47 lines
1.7 KiB
Ruby
47 lines
1.7 KiB
Ruby
|
if ['application', 'sidekiq', 'whenever'].include? node[:opsworks][:instance][:layers].first
|
||
|
rails_env = new_resource.environment["RAILS_ENV"]
|
||
|
shared_path = "#{new_resource.deploy_to}/shared"
|
||
|
|
||
|
# key is rails app path, value is shared directory path
|
||
|
directories = {
|
||
|
'public/assets' => 'assets',
|
||
|
'tmp/cache' => 'tmp/cache'
|
||
|
}
|
||
|
|
||
|
# creating directories and symlinking
|
||
|
directories.each do |_release_path, _shared_path|
|
||
|
directory "#{shared_path}/#{_shared_path}" do
|
||
|
mode 0770
|
||
|
action :create
|
||
|
recursive true
|
||
|
not_if do
|
||
|
Dir.exists?("#{shared_path}/#{_shared_path}")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
link "#{release_path}/#{_release_path}" do
|
||
|
to "#{shared_path}/#{_shared_path}"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if node[:opsworks][:instance][:layers].first.eql?('application')
|
||
|
# precompile assets into public/assets (which is symlinked to shared assets folder)
|
||
|
# execute "rake assets:precompile" do
|
||
|
# cwd release_path
|
||
|
# command "bundle exec rake assets:precompile --trace"
|
||
|
# environment 'RAILS_ENV' => rails_env
|
||
|
# end
|
||
|
|
||
|
#migrations
|
||
|
master_node = node[:opsworks][:layers]["application"][:instances].keys.sort.first if node[:opsworks][:layers] && node[:opsworks][:layers]["application"] && node[:opsworks][:layers]["application"][:instances]
|
||
|
if master_node && node[:opsworks][:instance][:hostname].include?(master_node)
|
||
|
execute "rake db:migrate" do
|
||
|
cwd release_path
|
||
|
command "bundle exec rake db:migrate --trace"
|
||
|
environment 'RAILS_ENV' => rails_env
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|