eac_redmine_base0 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/init.rb +16 -0
- data/lib/eac_redmine_base0/maintained_plugins.rb +18 -0
- data/lib/eac_redmine_base0/plugins_test.rb +108 -0
- data/lib/eac_redmine_base0/version.rb +8 -0
- data/lib/eac_redmine_base0.rb +4 -0
- data/lib/tasks/eac_redmine_base0.rake +22 -0
- metadata +90 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bbf8d188b27b35c40d52fe4448c6fcedd5029fa2c37be8e21cac0657e5758844
|
4
|
+
data.tar.gz: cb2b7e78f6bc86fe42c7d7f38dd05db320b80da1faddaf08037c705944df834a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 47ce4ea9d7dd0393d8089460a16ae424ef3e7c75d6654b3a7993a000808aa393e0319631093ec6c97256c3710f011729219a674a0d7c5da71d15e4c77527b51c
|
7
|
+
data.tar.gz: a8927510fb2099705542542fb205f7777bd9403adead73d51eff224bacfa4275e5a26e00b2d02a711e0b5e902552f90a36ddea5e7d0d6de6f55fe4cb0117295b
|
data/init.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'redmine'
|
4
|
+
|
5
|
+
require 'eac_redmine_base0/version'
|
6
|
+
|
7
|
+
Redmine::Plugin.register :eac_redmine_base0 do
|
8
|
+
name 'EacRedmineBase0'
|
9
|
+
author ::EacRedmineBase0::AUTHOR
|
10
|
+
description ::EacRedmineBase0::SUMMARY
|
11
|
+
version ::EacRedmineBase0::VERSION
|
12
|
+
end
|
13
|
+
|
14
|
+
Rails.configuration.to_prepare do
|
15
|
+
require 'eac_redmine_base0/maintained_plugins'
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'redmine/plugin'
|
4
|
+
|
5
|
+
module EacRedmineBase0
|
6
|
+
MAINTAINED_PLUGINS_NAMES = %w[
|
7
|
+
eac_redmine_base0 eac_redmine_usability notifyme redmine_avm redmine_events_manager
|
8
|
+
redmine_nonproject_modules redmine_plugins_helper redmine_tasks_schedulerredmine_with_git
|
9
|
+
].freeze
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def maintained_plugins
|
13
|
+
@maintained_plugins ||= ::Redmine::Plugin.registered_plugins.values.select do |plugin|
|
14
|
+
MAINTAINED_PLUGINS_NAMES.include?(plugin.id.to_s)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/result'
|
4
|
+
require 'eac_ruby_utils/console/speaker'
|
5
|
+
require 'eac_ruby_utils/envs'
|
6
|
+
require 'eac_ruby_utils/simple_cache'
|
7
|
+
|
8
|
+
module EacRedmineBase0
|
9
|
+
class PluginsTest
|
10
|
+
include ::EacRubyUtils::Console::Speaker
|
11
|
+
|
12
|
+
def run
|
13
|
+
@plugins = []
|
14
|
+
::Redmine::Plugin.registered_plugins.values.each do |plugin|
|
15
|
+
check_plugin(plugin)
|
16
|
+
end
|
17
|
+
check_results
|
18
|
+
end
|
19
|
+
|
20
|
+
def check_plugin(plugin)
|
21
|
+
infom "Checking plugin \"#{plugin.id}\"..."
|
22
|
+
test_plugin = PluginTest.new(plugin)
|
23
|
+
test_plugin.test_result
|
24
|
+
infom "Plugin \"#{plugin.id}\" checked"
|
25
|
+
@plugins << test_plugin
|
26
|
+
results_banner
|
27
|
+
end
|
28
|
+
|
29
|
+
def results_banner
|
30
|
+
infom 'Plugins\' test results:'
|
31
|
+
@plugins.each do |plugin|
|
32
|
+
infov " * #{plugin.id}", plugin.test_result.label
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def plugins_failed
|
37
|
+
@plugins.select { |plugin| plugin.test_result.error? }
|
38
|
+
end
|
39
|
+
|
40
|
+
def check_results
|
41
|
+
if plugins_failed.any?
|
42
|
+
fatal_error "Some test did not pass:\n" +
|
43
|
+
plugins_failed.map { |p| " * #{p.id} (Log: #{p.stdout_log})" }.join("\n")
|
44
|
+
else
|
45
|
+
success 'All tests passed'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class PluginTest < ::SimpleDelegator
|
50
|
+
include ::EacRubyUtils::SimpleCache
|
51
|
+
|
52
|
+
def initialize(plugin)
|
53
|
+
super(plugin)
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_task_name
|
57
|
+
"#{id}:test"
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_task?
|
61
|
+
::Rake::Task.task_defined?(test_task_name)
|
62
|
+
end
|
63
|
+
|
64
|
+
def stderr_log
|
65
|
+
log_path('stderr')
|
66
|
+
end
|
67
|
+
|
68
|
+
def stdout_log
|
69
|
+
log_path('stdout')
|
70
|
+
end
|
71
|
+
|
72
|
+
def maintained?
|
73
|
+
::EacRedmineBase0.maintained_plugins.any? { |plugin| plugin.id == id }
|
74
|
+
end
|
75
|
+
|
76
|
+
private
|
77
|
+
|
78
|
+
def log_path(suffix)
|
79
|
+
r = ::Rails.root.join('log', 'eac_redmine_base0', "#{id}_test_#{suffix}.log")
|
80
|
+
::FileUtils.mkdir_p(::File.dirname(r))
|
81
|
+
r
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_result_uncached
|
85
|
+
return ::Avm::Result.neutral('not maintained by E.A.C.') unless maintained?
|
86
|
+
return ::Avm::Result.neutral("task \"#{test_task_name}\" not found") unless test_task?
|
87
|
+
|
88
|
+
::Avm::Result.success_or_error(
|
89
|
+
run_test ? 'success' : "failed (Log: #{stdout_log})",
|
90
|
+
run_test
|
91
|
+
)
|
92
|
+
end
|
93
|
+
|
94
|
+
def run_test_uncached
|
95
|
+
r = run_test_command.execute
|
96
|
+
::File.write(stderr_log, r.fetch(:stderr))
|
97
|
+
::File.write(stdout_log, r.fetch(:stdout))
|
98
|
+
r.fetch(:exit_code).zero?
|
99
|
+
end
|
100
|
+
|
101
|
+
def run_test_command
|
102
|
+
::EacRubyUtils::Envs.local.command('bundle', 'exec', 'rake', test_task_name)
|
103
|
+
.envvar('RAILS_ENV', 'test')
|
104
|
+
.chdir(::Rails.root)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift(::File.join(::File.dirname(__dir__)))
|
4
|
+
require 'eac_redmine_base0'
|
5
|
+
|
6
|
+
namespace :eac_redmine_base0 do
|
7
|
+
namespace :plugins do
|
8
|
+
desc 'Lists plugins maintained by E.A.C..'
|
9
|
+
task list: :environment do
|
10
|
+
::EacRedmineBase0.maintained_plugins.each do |plugin|
|
11
|
+
::Rails.logger.info("Plugin: #{plugin.name} (ID: #{plugin.id})")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Tests plugins maintained by E.A.C..'
|
16
|
+
task test: :environment do
|
17
|
+
::EacRedmineBase0::PluginsTest.new.run
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
task plugins: 'plugins:list'
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: eac_redmine_base0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- 0.2.0
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-08-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: avm-tools
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.9'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rubocop
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.74.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.74.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop-rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.2.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.2.1
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- init.rb
|
62
|
+
- lib/eac_redmine_base0.rb
|
63
|
+
- lib/eac_redmine_base0/maintained_plugins.rb
|
64
|
+
- lib/eac_redmine_base0/plugins_test.rb
|
65
|
+
- lib/eac_redmine_base0/version.rb
|
66
|
+
- lib/tasks/eac_redmine_base0.rake
|
67
|
+
homepage: https://github.com/esquilo-azul/eac_redmine_base0
|
68
|
+
licenses: []
|
69
|
+
metadata: {}
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options: []
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
requirements: []
|
85
|
+
rubyforge_project:
|
86
|
+
rubygems_version: 2.7.7
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: E.A.C. base for Redmine.
|
90
|
+
test_files: []
|