aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tasks')
-rw-r--r--lib/tasks/ci.rake15
-rw-r--r--lib/tasks/compliance_check_sets.rb11
-rw-r--r--lib/tasks/imports.rake104
-rw-r--r--lib/tasks/install.rake4
4 files changed, 127 insertions, 7 deletions
diff --git a/lib/tasks/ci.rake b/lib/tasks/ci.rake
index 13d7b8d73..89f9aa9c8 100644
--- a/lib/tasks/ci.rake
+++ b/lib/tasks/ci.rake
@@ -31,19 +31,22 @@ namespace :ci do
sh "bundle exec bundle-audit check --update"
end
- task :spec => ["ci:assets","spec"]
-
task :assets do
sh "RAILS_ENV=test bundle exec rake assets:precompile"
end
- task :jest => "ci:assets" do
- sh "yarn --no-progress install" # Hack to force install jest after webpack
- sh "node_modules/.bin/jest" unless ["CHOUETTE_JEST_DISABLED"]
+ task :i18n_js_export do
+ sh "RAILS_ENV=test bundle exec rake i18n:js:export"
+ end
+
+ task :jest do
+ sh "node_modules/.bin/jest" unless ENV["CHOUETTE_JEST_DISABLED"]
end
desc "Deploy after CI"
task :deploy do
+ return if ENV["CHOUETTE_DEPLOY_DISABLED"]
+
if deploy_env
sh "cap #{deploy_env} deploy:migrations"
else
@@ -59,4 +62,4 @@ namespace :ci do
end
desc "Run continuous integration tasks (spec, ...)"
-task :ci => ["ci:setup", "ci:spec", "ci:jest", "cucumber", "ci:check_security", "ci:deploy", "ci:clean"]
+task :ci => ["ci:setup", "ci:assets", "ci:i18n_js_export", "spec", "ci:jest", "cucumber", "ci:check_security", "ci:deploy", "ci:clean"]
diff --git a/lib/tasks/compliance_check_sets.rb b/lib/tasks/compliance_check_sets.rb
new file mode 100644
index 000000000..c53c7f9ed
--- /dev/null
+++ b/lib/tasks/compliance_check_sets.rb
@@ -0,0 +1,11 @@
+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/imports.rake b/lib/tasks/imports.rake
index 6bc84acc8..b91ff7efb 100644
--- a/lib/tasks/imports.rake
+++ b/lib/tasks/imports.rake
@@ -1,6 +1,108 @@
+require 'csv'
+
namespace :import do
desc "Notify parent imports when children finish"
task notify_parent: :environment do
- ParentImportNotifier.notify_when_finished
+ ParentNotifier.new(Import).notify_when_finished
+ end
+
+ desc "Mark old unfinished Netex imports as 'aborted'"
+ task netex_abort_old: :environment do
+ NetexImport.abort_old
+ end
+
+ def importer_output_to_csv importer
+ filepath = "./#{importer.configuration_name}_#{Time.now.strftime "%y%m%d%H%M"}_out.csv"
+ cols = %w(line kind event message error)
+ if importer.reload.journal.size > 0
+ keys = importer.journal.first["row"].map(&:first)
+ CSV.open(filepath, "w") do |csv|
+ csv << cols + keys
+ importer.journal.each do |j|
+ csv << cols.map{|c| j[c]} + j["row"].map(&:last)
+ end
+ end
+ puts "Import Output written in #{filepath}"
+ end
+ end
+
+ desc "import the given file with the corresponding importer"
+ task :import, [:configuration_name, :filepath, :referential_id] => :environment do |t, args|
+ importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath]
+ if args[:referential_id].present?
+ referential = Referential.find args[:referential_id]
+ importer.configure do |config|
+ config.add_value :referential, referential
+ config.context = {referential: referential}
+ end
+ end
+ puts "\e[33m***\e[0m Start importing"
+ begin
+ importer.import(verbose: true)
+ rescue Interrupt
+ raise
+ ensure
+ puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m"
+ importer_output_to_csv importer
+ end
+ end
+
+ desc "import the given file with the corresponding importer in the given StopAreaReferential"
+ task :import_in_stop_area_referential, [:referential_id, :configuration_name, :filepath] => :environment do |t, args|
+ referential = StopAreaReferential.find args[:referential_id]
+ importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath]
+ importer.configure do |config|
+ config.add_value :stop_area_referential, referential
+ config.context = {stop_area_referential: referential}
+ end
+ puts "\e[33m***\e[0m Start importing"
+ begin
+ importer.import(verbose: true)
+ rescue Interrupt
+ raise
+ ensure
+ puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m"
+ importer_output_to_csv importer
+ end
+ end
+
+ desc "import the given routes files"
+ task :import_routes, [:referential_id, :configuration_name, :mapping_filepath, :filepath] => :environment do |t, args|
+ referential = Referential.find args[:referential_id]
+ referential.switch
+ stop_area_referential = referential.stop_area_referential
+ importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath]
+ importer.configure do |config|
+ config.add_value :stop_area_referential, referential
+ config.context = {stop_area_referential: stop_area_referential, mapping_filepath: args[:mapping_filepath]}
+ end
+ puts "\e[33m***\e[0m Start importing"
+ begin
+ importer.import(verbose: true)
+ rescue Interrupt
+ raise
+ ensure
+ puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m"
+ importer_output_to_csv importer
+ end
+ end
+
+ desc "import the given file with the corresponding importer in the given LineReferential"
+ task :import_in_line_referential, [:referential_id, :configuration_name, :filepath] => :environment do |t, args|
+ referential = LineReferential.find args[:referential_id]
+ importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath]
+ importer.configure do |config|
+ config.add_value :line_referential, referential
+ config.context = {line_referential: referential}
+ end
+ puts "\e[33m***\e[0m Start importing"
+ begin
+ importer.import(verbose: true)
+ rescue Interrupt
+ raise
+ ensure
+ puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m"
+ importer_output_to_csv importer
+ end
end
end
diff --git a/lib/tasks/install.rake b/lib/tasks/install.rake
index 1150825b2..7d8ecdce0 100644
--- a/lib/tasks/install.rake
+++ b/lib/tasks/install.rake
@@ -9,9 +9,11 @@ task :package do
sh "bundle package --all"
sh "bundle exec rake assets:clobber RAILS_ENV=production"
sh "bundle exec rake assets:precompile RAILS_ENV=production"
+ sh "bundle exec rake i18n:js:export RAILS_ENV=production"
sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar vendor/cache"
sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar public/assets"
sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar public/packs"
+ sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar public/javascripts"
%w{deploy-helper.sh README sidekiq-stif-boiv.service stif-boiv.conf stif-boiv-setup.sh template-stif-boiv.sql}.each do |f|
cp "install/#{f}", "tmp/package/#{f}"
@@ -37,9 +39,11 @@ task :pkg4docker do
# sh "RAILS_DB_ADAPTER=nulldb bundle exec rake assets:precompile RAILS_ENV=production"
sh "bundle exec rake assets:clobber RAILS_ENV=production"
sh "bundle exec rake assets:precompile RAILS_ENV=production"
+ sh "bundle exec rake i18n:js:export RAILS_ENV=production"
sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar vendor/cache"
sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar public/assets"
sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar public/packs"
+ sh "tar -rf tmp/package/stif-boiv-release-#{release_name}.tar public/javascripts"
sh "gzip -c tmp/package/stif-boiv-release-#{release_name}.tar > tmp/stif-boiv-release.tar.gz"