From b985fe95b6c30bc83725e9b5e18a79a8ceb900d3 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 8 Feb 2018 18:14:10 +0200 Subject: Add generator for plugins Signed-off-by: Dmitriy Zaporozhets --- lib/tasks/plugins.rake | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 lib/tasks/plugins.rake (limited to 'lib/tasks/plugins.rake') diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake new file mode 100644 index 00000000000..fac6070ea9b --- /dev/null +++ b/lib/tasks/plugins.rake @@ -0,0 +1,25 @@ +namespace :plugins do + desc 'Generate skeleton for new plugin' + task generate: :environment do + ARGV.each { |a| task a.to_sym { } } + name = ARGV[1] + + unless name.present? + puts 'Error. You need to specify a name for the plugin' + exit 1 + end + + class_name = name.classify + param = name.underscore + file_path = Rails.root.join('plugins', param + '_plugin.rb') + template = File.read(Rails.root.join('generator_templates', 'plugins', 'template.rb')) + template.gsub!('$NAME', class_name) + + if File.write(file_path, template) + puts "Done. Your plugin saved under #{file_path}." + puts 'Feel free to edit it.' + else + puts "Failed to save #{file_path}." + end + end +end -- cgit v1.2.1 From 5bb435d0e75ad84e2fc379208cc36a25a4574453 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 19 Feb 2018 19:20:53 +0200 Subject: Remove plugin initializer and add plugins:validate rake task Signed-off-by: Dmitriy Zaporozhets --- lib/tasks/plugins.rake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/tasks/plugins.rake') diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake index fac6070ea9b..8728e232c9c 100644 --- a/lib/tasks/plugins.rake +++ b/lib/tasks/plugins.rake @@ -22,4 +22,19 @@ namespace :plugins do puts "Failed to save #{file_path}." end end + + desc 'Validate existing plugins' + task validate: :environment do + puts 'Validating plugins from /plugins directory' + + Gitlab::Plugin.all.each do |plugin| + begin + plugin.new.execute(Gitlab::DataBuilder::Push::SAMPLE_DATA) + rescue => e + puts "- #{plugin} raised an exception during boot check. #{e}" + else + puts "- #{plugin} passed validation check" + end + end + end end -- cgit v1.2.1 From eff5746b5e7cf4075edd6d1c76fdcd24c1603bb4 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 19 Feb 2018 19:55:54 +0200 Subject: Redesign plugins system Signed-off-by: Dmitriy Zaporozhets --- lib/tasks/plugins.rake | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lib/tasks/plugins.rake') diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake index 8728e232c9c..9c9f1fece85 100644 --- a/lib/tasks/plugins.rake +++ b/lib/tasks/plugins.rake @@ -27,13 +27,13 @@ namespace :plugins do task validate: :environment do puts 'Validating plugins from /plugins directory' - Gitlab::Plugin.all.each do |plugin| - begin - plugin.new.execute(Gitlab::DataBuilder::Push::SAMPLE_DATA) - rescue => e - puts "- #{plugin} raised an exception during boot check. #{e}" + Gitlab::Plugin.files.each do |file| + result = Gitlab::Plugin.execute(file, Gitlab::DataBuilder::Push::SAMPLE_DATA) + + if result + puts "* #{file} succeed (zero exit code)" else - puts "- #{plugin} passed validation check" + puts "* #{file} failure (non-zero exit code)" end end end -- cgit v1.2.1 From 645dceb0a233fc523ac16611fa3fec317d29a7e1 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Fri, 23 Feb 2018 15:58:57 +0200 Subject: Run plugins as separate process and pass data via STDIN Signed-off-by: Dmitriy Zaporozhets --- lib/tasks/plugins.rake | 24 ------------------------ 1 file changed, 24 deletions(-) (limited to 'lib/tasks/plugins.rake') diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake index 9c9f1fece85..f4d7edb2eb2 100644 --- a/lib/tasks/plugins.rake +++ b/lib/tasks/plugins.rake @@ -1,28 +1,4 @@ namespace :plugins do - desc 'Generate skeleton for new plugin' - task generate: :environment do - ARGV.each { |a| task a.to_sym { } } - name = ARGV[1] - - unless name.present? - puts 'Error. You need to specify a name for the plugin' - exit 1 - end - - class_name = name.classify - param = name.underscore - file_path = Rails.root.join('plugins', param + '_plugin.rb') - template = File.read(Rails.root.join('generator_templates', 'plugins', 'template.rb')) - template.gsub!('$NAME', class_name) - - if File.write(file_path, template) - puts "Done. Your plugin saved under #{file_path}." - puts 'Feel free to edit it.' - else - puts "Failed to save #{file_path}." - end - end - desc 'Validate existing plugins' task validate: :environment do puts 'Validating plugins from /plugins directory' -- cgit v1.2.1 From 4b998239a3fec56f93e24ca063d1196416aec938 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 26 Feb 2018 14:15:51 +0200 Subject: Add plugin queue to sidekiq config [ci skip] Signed-off-by: Dmitriy Zaporozhets --- lib/tasks/plugins.rake | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib/tasks/plugins.rake') diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake index f4d7edb2eb2..11c41f13614 100644 --- a/lib/tasks/plugins.rake +++ b/lib/tasks/plugins.rake @@ -13,4 +13,9 @@ namespace :plugins do end end end + + desc 'Validate existing plugins' + task validate_async: :environment do + Gitlab::Plugin.execute_all_async(Gitlab::DataBuilder::Push::SAMPLE_DATA) + end end -- cgit v1.2.1 From 2577ff7fd656f301c4b1909f0a1c358c8c30a614 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 28 Feb 2018 12:16:23 +0200 Subject: Refactor plugins feature and make some doc improvements Signed-off-by: Dmitriy Zaporozhets --- lib/tasks/plugins.rake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/tasks/plugins.rake') diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake index 11c41f13614..7a9de3afbec 100644 --- a/lib/tasks/plugins.rake +++ b/lib/tasks/plugins.rake @@ -4,12 +4,12 @@ namespace :plugins do puts 'Validating plugins from /plugins directory' Gitlab::Plugin.files.each do |file| - result = Gitlab::Plugin.execute(file, Gitlab::DataBuilder::Push::SAMPLE_DATA) + success, message = Gitlab::Plugin.execute(file, Gitlab::DataBuilder::Push::SAMPLE_DATA) - if result - puts "* #{file} succeed (zero exit code)" + if success + puts "* #{file} succeed (zero exit code)." else - puts "* #{file} failure (non-zero exit code)" + puts "* #{file} failure (non-zero exit code). #{message}" end end end -- cgit v1.2.1 From 886d442b405a0db3dccc1b24e050244f65099826 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 28 Feb 2018 12:31:19 +0200 Subject: Improve plugins documentation and remove unnecessary rake task Signed-off-by: Dmitriy Zaporozhets --- lib/tasks/plugins.rake | 5 ----- 1 file changed, 5 deletions(-) (limited to 'lib/tasks/plugins.rake') diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake index 7a9de3afbec..e73dd7e68df 100644 --- a/lib/tasks/plugins.rake +++ b/lib/tasks/plugins.rake @@ -13,9 +13,4 @@ namespace :plugins do end end end - - desc 'Validate existing plugins' - task validate_async: :environment do - Gitlab::Plugin.execute_all_async(Gitlab::DataBuilder::Push::SAMPLE_DATA) - end end -- cgit v1.2.1