diff options
Diffstat (limited to 'lib/tasks')
| -rw-r--r-- | lib/tasks/ci.rake | 26 | ||||
| -rw-r--r-- | lib/tasks/codifligne.rake | 8 | ||||
| -rw-r--r-- | lib/tasks/compliance_check_sets.rb | 11 | ||||
| -rw-r--r-- | lib/tasks/exports.rake | 14 | ||||
| -rw-r--r-- | lib/tasks/imports.rake | 10 | ||||
| -rw-r--r-- | lib/tasks/organisations.rake | 6 | ||||
| -rw-r--r-- | lib/tasks/referential.rake | 28 | ||||
| -rw-r--r-- | lib/tasks/reflex.rake | 8 | ||||
| -rw-r--r-- | lib/tasks/users.rake | 6 |
9 files changed, 46 insertions, 71 deletions
diff --git a/lib/tasks/ci.rake b/lib/tasks/ci.rake index 0723e4ccb..7ef867b71 100644 --- a/lib/tasks/ci.rake +++ b/lib/tasks/ci.rake @@ -14,10 +14,19 @@ namespace :ci do desc "Prepare CI build" task :setup do - cp "config/database.yml", "config/database.yml.orig" - cp "config/database/ci.yml", "config/database.yml" - puts "Use #{database_name} database" + unless ENV["IGNORE_YARN_INSTALL"] + # FIXME remove this specific behavior + # Managed by Dockerfile.build + sh "yarn --frozen-lockfile install" + end + + unless ENV["KEEP_DATABASE_CONFIG"] + # FIXME remove this specific behavior + cp "config/database.yml", "config/database.yml.orig" + cp "config/database/ci.yml", "config/database.yml" + end + puts "Use #{database_name} database" if parallel_tests? sh "RAILS_ENV=test rake parallel:drop parallel:create parallel:migrate" else @@ -25,6 +34,15 @@ namespace :ci do end end + task :fix_webpacker do + # Redefine webpacker:yarn_install to avoid --production + # in CI process + Rake::Task["webpacker:yarn_install"].clear + Rake::Task.define_task "webpacker:yarn_install" do + puts "Don't run yarn" + end + end + def git_branch if ENV['GIT_BRANCH'] =~ %r{/(.*)$} $1 @@ -52,7 +70,7 @@ namespace :ci do end task :assets do - sh "RAILS_ENV=test bundle exec rake assets:precompile i18n:js:export" + sh "RAILS_ENV=test bundle exec rake ci:fix_webpacker assets:precompile i18n:js:export" end task :jest do diff --git a/lib/tasks/codifligne.rake b/lib/tasks/codifligne.rake deleted file mode 100644 index dd5e99370..000000000 --- a/lib/tasks/codifligne.rake +++ /dev/null @@ -1,8 +0,0 @@ -namespace :codifligne do - desc "Sync lines, companies, networks, and group of lines from codifligne" - task sync: :environment do - sync = LineReferential.find_by(name: 'CodifLigne').line_referential_syncs.build - raise "Codifligne:sync aborted - There is already an synchronisation in progress" unless sync.valid? - sync.save if sync.valid? - end -end diff --git a/lib/tasks/compliance_check_sets.rb b/lib/tasks/compliance_check_sets.rb deleted file mode 100644 index c53c7f9ed..000000000 --- a/lib/tasks/compliance_check_sets.rb +++ /dev/null @@ -1,11 +0,0 @@ -namespace :compliance_check_sets do - desc "Notify parent check sets when children finish" - task notify_parent: :environment do - ParentNotifier.new(ComplianceCheckSet).notify_when_finished - end - - desc "Mark old unfinished check sets as 'aborted'" - task abort_old: :environment do - ComplianceCheckSet.abort_old - end -end diff --git a/lib/tasks/exports.rake b/lib/tasks/exports.rake index 845d581d3..33fbf81ed 100644 --- a/lib/tasks/exports.rake +++ b/lib/tasks/exports.rake @@ -52,9 +52,9 @@ namespace :export do puts "No maching journeys were found".red else exports_group = SimpleInterfacesGroup.new "Export Complet \"#{referential.name}\" du #{Time.now.to_date} au #{args[:timelapse].to_i.days.from_now.to_date}" - exports_group.shared_options = {verbose: true} + exports_group.shared_options = {verbose: true, output_dir: args[:output_dir]} - exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_companies", filepath: "#{args[:output_dir]}/#{args[:configuration_name]}_companies.json" + exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_companies", filepath: "#{args[:output_dir]}/service_type.json" ids = journeys.pluck :company_id ids += journeys.joins(route: :line).pluck :"lines.company_id" @@ -64,28 +64,28 @@ namespace :export do exports_group.add_interface exporter, "Services Types", :export - exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_schedules", filepath: "#{args[:output_dir]}/#{args[:configuration_name]}_schedules.json" + exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_schedules", filepath: "#{args[:output_dir]}/schedule.json" exporter.configure do |config| - config.collection = journeys + config.collection = journeys.where("custom_field_values->>'capacity' IS NOT NULL") end exports_group.add_interface exporter, "Schedules", :export - exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_routes", filepath: "#{args[:output_dir]}/#{args[:configuration_name]}_routes.json" + exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_routes", filepath: "#{args[:output_dir]}/route.json" exporter.configure do |config| config.collection = Chouette::JourneyPattern.where(id: journeys.pluck(:journey_pattern_id).uniq) end exports_group.add_interface exporter, "Routes", :export - exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_stops", filepath: "#{args[:output_dir]}/#{args[:configuration_name]}_stops.json" + exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_stops", filepath: "#{args[:output_dir]}/station.json" exporter.configure do |config| config.collection = Chouette::StopArea.where(id: journeys.joins(:stop_points).pluck(:"stop_points.stop_area_id").uniq).order('parent_id ASC NULLS FIRST') end exports_group.add_interface exporter, "Stops", :export - exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_journeys", filepath: "#{args[:output_dir]}/#{args[:configuration_name]}_journeys.json" + exporter = SimpleJsonExporter.create configuration_name: "#{args[:configuration_name]}_journeys", filepath: "#{args[:output_dir]}/service.json" exporter.configure do |config| config.collection = journeys end diff --git a/lib/tasks/imports.rake b/lib/tasks/imports.rake index d393ab156..258c37bbd 100644 --- a/lib/tasks/imports.rake +++ b/lib/tasks/imports.rake @@ -2,16 +2,6 @@ require 'csv' require 'tasks/helpers/simple_interfaces' namespace :import do - desc "Notify parent imports when children finish" - task notify_parent: :environment do - ParentNotifier.new(Import::Base).notify_when_finished - end - - desc "Mark old unfinished Netex imports as 'aborted'" - task netex_abort_old: :environment do - Import::Netex.abort_old - end - desc "import the given file with the corresponding importer" task :import, [:configuration_name, :filepath, :referential_id, :logs_output_dir] => :environment do |t, args| args.with_defaults(logs_output_dir: "./log/importers/") diff --git a/lib/tasks/organisations.rake b/lib/tasks/organisations.rake deleted file mode 100644 index 1b21d7119..000000000 --- a/lib/tasks/organisations.rake +++ /dev/null @@ -1,6 +0,0 @@ -namespace :organisations do - desc "Sync organisations from stif portail" - task sync: :environment do - Organisation.portail_sync - end -end diff --git a/lib/tasks/referential.rake b/lib/tasks/referential.rake index b3202035b..2e1683208 100644 --- a/lib/tasks/referential.rake +++ b/lib/tasks/referential.rake @@ -82,30 +82,36 @@ namespace :referential do print "⎯"*(80-head.size) print " " count = klass.count - klass.find_each do |o| - o.update_checksum! - if j%10 == 0 - out = "#{"\b"*prev_size}\e[33m#{thing[i]}\e[0m (#{j}/#{count})" - prev_size = out.size - prev_size - 9 - print out - i = (i+1) % thing.size + klass.cache do + klass.find_in_batches(batch_size: 500) do |batch| + klass.transaction do + batch.each do |o| + o.update_checksum! + if j%10 == 0 + out = "#{"\b"*prev_size}\e[33m#{thing[i]}\e[0m (#{j}/#{count})" + prev_size = out.size - prev_size - 9 + print out + i = (i+1) % thing.size + end + j += 1 + end + end end - j += 1 end + print "#{"\b"*prev_size}\e[32m✓\e[0m (#{count}/#{count})\n" end end end desc 'Update all the checksums in the given referential' - task :update_checksums_in_referential, [:slug] => :environment do |t, args| - referential = Referential.find_by_slug(args[:slug]) + task :update_checksums_in_referential, [:id] => :environment do |t, args| + referential = Referential.find(args[:id]) update_checksums_for_referential referential end desc 'Update all the checksums in the given organisation' task :update_checksums_in_organisation, [:organisation_id] => :environment do |t, args| - thing = %w(\\ | / —) Organisation.find(args[:organisation_id]).referentials.find_each do |referential| update_checksums_for_referential referential end diff --git a/lib/tasks/reflex.rake b/lib/tasks/reflex.rake deleted file mode 100644 index 67496cee0..000000000 --- a/lib/tasks/reflex.rake +++ /dev/null @@ -1,8 +0,0 @@ -namespace :reflex do - desc "Sync data from Reflex api" - task sync: :environment do - sync = StopAreaReferential.find_by(name: 'Reflex').stop_area_referential_syncs.build - raise "reflex:sync aborted - There is already an synchronisation in progress" unless sync.valid? - sync.save if sync.valid? - end -end diff --git a/lib/tasks/users.rake b/lib/tasks/users.rake deleted file mode 100644 index c045639c1..000000000 --- a/lib/tasks/users.rake +++ /dev/null @@ -1,6 +0,0 @@ -namespace :users do - desc "Sync users from stif portail" - task sync: :environment do - User.portail_sync - end -end |
