A calendar management project, for events and activities related to communities fighting for freedoms.
This can be related to software, art, data, hardware, content, commons, internet.
https://www.agendadulibre.org
This can be related to software, art, data, hardware, content, commons, internet.
https://www.agendadulibre.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
#!/usr/bin/env ruby |
|
oldrev, newrev = ARGV |
|
|
|
def run(cmd) |
|
exit($CHILD_STATUS.exitstatus) unless system "umask 002 && #{cmd}" |
|
end |
|
|
|
RAILS_ENV = ENV['RAILS_ENV'] || 'production' |
|
use_bundler = File.file? 'Gemfile' |
|
rake_cmd = use_bundler ? 'bundle exec rake' : 'rake' |
|
|
|
if use_bundler |
|
bundler_args = ['--deployment'] |
|
BUNDLE_WITHOUT = ENV['BUNDLE_WITHOUT'] || 'development:test' |
|
bundler_args << '--without' << BUNDLE_WITHOUT unless BUNDLE_WITHOUT.empty? |
|
|
|
# update gem bundle |
|
run "bundle install #{bundler_args.join(' ')}" |
|
end |
|
|
|
if File.file? 'Rakefile' |
|
num_migrations = |
|
`git diff #{oldrev} #{newrev} --diff-filter=A --name-only -z db/migrate` |
|
.split("\0").size |
|
# run migrations if new ones have been added |
|
if num_migrations.positive? |
|
run "#{rake_cmd} db:migrate RAILS_ENV=#{RAILS_ENV}" |
|
run "#{rake_cmd} db:migrate RAILS_ENV=#{RAILS_ENV}_be" |
|
run "#{rake_cmd} db:migrate RAILS_ENV=#{RAILS_ENV}_ch" |
|
run "#{rake_cmd} db:migrate RAILS_ENV=#{RAILS_ENV}_communs" |
|
end |
|
|
|
# precompile assets |
|
# changed_assets = `git diff #{oldrev} #{newrev} --name-only -z app/assets` |
|
# .split("\0") |
|
|
|
# task = 'assets:precompile' |
|
# unless changed_assets.empty? |
|
# run "#{rake_cmd} #{task} RAILS_ENV=#{RAILS_ENV} RAILS_GROUPS=assets" |
|
# end |
|
end |
|
|
|
# clear cached assets (unversioned/ignored files) |
|
run 'git clean -x -f -- public/stylesheets public/javascripts' |
|
|
|
# clean unversioned files from vendor/plugins (e.g. old submodules) |
|
run 'git clean -d -f -- vendor/plugins'
|
|
|