Merge pull request #3590 from consul/add_upgrade_task
Add task to upgrade to a new release
This commit is contained in:
@@ -51,6 +51,13 @@ namespace :deploy do
|
|||||||
after :published, "refresh_sitemap"
|
after :published, "refresh_sitemap"
|
||||||
|
|
||||||
after :finishing, "deploy:cleanup"
|
after :finishing, "deploy:cleanup"
|
||||||
|
|
||||||
|
|
||||||
|
desc "Deploys and runs the tasks needed to upgrade to a new release"
|
||||||
|
task :upgrade do
|
||||||
|
after "add_new_settings", "execute_release_tasks"
|
||||||
|
invoke "deploy"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
task :install_bundler_gem do
|
task :install_bundler_gem do
|
||||||
@@ -70,7 +77,7 @@ task :refresh_sitemap do
|
|||||||
end
|
end
|
||||||
|
|
||||||
task :add_new_settings do
|
task :add_new_settings do
|
||||||
on roles(:app) do
|
on roles(:db) do
|
||||||
within release_path do
|
within release_path do
|
||||||
with rails_env: fetch(:rails_env) do
|
with rails_env: fetch(:rails_env) do
|
||||||
execute :rake, "settings:add_new_settings"
|
execute :rake, "settings:add_new_settings"
|
||||||
@@ -78,3 +85,13 @@ task :add_new_settings do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
task :execute_release_tasks do
|
||||||
|
on roles(:app) do
|
||||||
|
within release_path do
|
||||||
|
with rails_env: fetch(:rails_env) do
|
||||||
|
execute :rake, "consul:execute_release_tasks"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
11
lib/application_logger.rb
Normal file
11
lib/application_logger.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
class ApplicationLogger
|
||||||
|
def info(message)
|
||||||
|
logger.info(message)
|
||||||
|
end
|
||||||
|
|
||||||
|
def logger
|
||||||
|
@logger ||= Logger.new(STDOUT).tap do |logger|
|
||||||
|
logger.formatter = proc { |severity, _datetime, _progname, msg| "#{severity} #{msg}\n" }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,4 +1,14 @@
|
|||||||
namespace :budgets do
|
namespace :budgets do
|
||||||
|
desc "Regenerate ballot_lines_count cache"
|
||||||
|
task calculate_ballot_lines: :environment do
|
||||||
|
ApplicationLogger.new.info "Calculating ballot lines"
|
||||||
|
|
||||||
|
Budget::Ballot.find_each.with_index do |ballot, index|
|
||||||
|
Budget::Ballot.reset_counters ballot.id, :lines
|
||||||
|
print "." if (index % 10_000).zero?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
namespace :email do
|
namespace :email do
|
||||||
|
|
||||||
desc "Sends emails to authors of selected investments"
|
desc "Sends emails to authors of selected investments"
|
||||||
|
|||||||
13
lib/tasks/consul.rake
Normal file
13
lib/tasks/consul.rake
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
namespace :consul do
|
||||||
|
desc "Runs tasks needed to upgrade to the latest version"
|
||||||
|
task execute_release_tasks: "execute_release_1.0.0_tasks"
|
||||||
|
|
||||||
|
desc "Runs tasks needed to upgrade from 1.0.0-beta to 1.0.0"
|
||||||
|
task "execute_release_1.0.0_tasks": [
|
||||||
|
"poll:generate_slugs",
|
||||||
|
"stats_and_results:migrate_to_reports",
|
||||||
|
"budgets:calculate_ballot_lines",
|
||||||
|
"settings:remove_deprecated_settings",
|
||||||
|
"stats:generate"
|
||||||
|
]
|
||||||
|
end
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
namespace :poll do
|
namespace :poll do
|
||||||
desc "Generate slugs polls"
|
desc "Generate slugs polls"
|
||||||
task generate_slugs: :environment do
|
task generate_slugs: :environment do
|
||||||
|
ApplicationLogger.new.info "Generating poll slugs"
|
||||||
|
|
||||||
Poll.find_each do |poll|
|
Poll.find_each do |poll|
|
||||||
poll.update_columns(slug: poll.generate_slug, updated_at: Time.current) if poll.generate_slug?
|
poll.update_columns(slug: poll.generate_slug, updated_at: Time.current) if poll.generate_slug?
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
namespace :budgets do
|
|
||||||
desc "Regenerate ballot_lines_count cache"
|
|
||||||
task calculate_ballot_lines: :environment do
|
|
||||||
Budget::Ballot.find_each do |ballot|
|
|
||||||
Budget::Ballot.reset_counters ballot.id, :lines
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -2,6 +2,8 @@ namespace :settings do
|
|||||||
|
|
||||||
desc "Remove deprecated settings"
|
desc "Remove deprecated settings"
|
||||||
task remove_deprecated_settings: :environment do
|
task remove_deprecated_settings: :environment do
|
||||||
|
ApplicationLogger.new.info "Removing deprecated settings"
|
||||||
|
|
||||||
deprecated_keys = [
|
deprecated_keys = [
|
||||||
"place_name",
|
"place_name",
|
||||||
"banner-style.banner-style-one",
|
"banner-style.banner-style-one",
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
namespace :stats do
|
namespace :stats do
|
||||||
desc "Generates stats which are not cached yet"
|
desc "Generates stats which are not cached yet"
|
||||||
task generate: :environment do
|
task generate: :environment do
|
||||||
|
ApplicationLogger.new.info "Updating budget and poll stats"
|
||||||
|
|
||||||
Budget.find_each do |budget|
|
Budget.find_each do |budget|
|
||||||
Budget::Stats.new(budget).generate
|
Budget::Stats.new(budget).generate
|
||||||
print "."
|
print "."
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
namespace :stats_and_results do
|
namespace :stats_and_results do
|
||||||
desc "Migrates stats_enabled and results_enabled data to enabled reports"
|
desc "Migrates stats_enabled and results_enabled data to enabled reports"
|
||||||
task migrate_to_reports: :environment do
|
task migrate_to_reports: :environment do
|
||||||
|
ApplicationLogger.new.info "Migrating stats and results"
|
||||||
Migrations::Reports.new.migrate
|
Migrations::Reports.new.migrate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user