redmine-installer 2.1.4 → 2.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 +4 -4
- data/lib/redmine-installer.rb +2 -1
- data/lib/redmine-installer/install.rb +4 -0
- data/lib/redmine-installer/package.rb +1 -1
- data/lib/redmine-installer/package_config.rb +76 -0
- data/lib/redmine-installer/redmine.rb +19 -4
- data/lib/redmine-installer/upgrade.rb +1 -0
- data/lib/redmine-installer/version.rb +1 -1
- data/spec/installer_helper.rb +4 -3
- data/spec/lib/install_spec.rb +28 -0
- data/spec/packages_helper.rb +8 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bb267b21e7a017379570dc6403992a1c1f24ee5cd99d46e0f804507822eb4ef
|
4
|
+
data.tar.gz: cc4861e5978b24200309f5752872e6326f98c7e2b9572831ce23dc693239e76c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93a5dd5b2c0b11575542071b65cef96ffc5328c239230f506852d163e0708d0b8befcb17ddeb03405975c7f6bb27095cf742991dda7c029fab78c78b5089cdfc
|
7
|
+
data.tar.gz: 6baab12f21600f53306a3561400893a111bf82863930d7d5109302c99cf14b0c6edcd26c3a4ab198b8022f1cade4fc6d5f926091ee8efb97ba53eb7cc526450e
|
data/lib/redmine-installer.rb
CHANGED
@@ -28,9 +28,10 @@ module RedmineInstaller
|
|
28
28
|
autoload :Profile, 'redmine-installer/profile'
|
29
29
|
autoload :Backup, 'redmine-installer/backup'
|
30
30
|
autoload :RestoreDB, 'redmine-installer/restore_db'
|
31
|
+
autoload :PackageConfig, 'redmine-installer/package_config'
|
31
32
|
|
32
33
|
# Settings
|
33
|
-
MIN_SUPPORTED_RUBY = '2.
|
34
|
+
MIN_SUPPORTED_RUBY = '2.2.0'
|
34
35
|
|
35
36
|
def self.logger
|
36
37
|
@logger ||= RedmineInstaller::Logger.new
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module RedmineInstaller
|
2
2
|
class Install < Task
|
3
3
|
|
4
|
+
attr_reader :package_config
|
5
|
+
|
4
6
|
def initialize(package, redmine_root, **options)
|
5
7
|
super(**options)
|
6
8
|
|
@@ -8,6 +10,7 @@ module RedmineInstaller
|
|
8
10
|
@package = Package.new(self, package)
|
9
11
|
@target_redmine = Redmine.new(self, redmine_root)
|
10
12
|
@temp_redmine = Redmine.new(self)
|
13
|
+
@package_config = PackageConfig.new(@temp_redmine)
|
11
14
|
end
|
12
15
|
|
13
16
|
def up
|
@@ -18,6 +21,7 @@ module RedmineInstaller
|
|
18
21
|
@package.extract
|
19
22
|
|
20
23
|
@temp_redmine.root = @package.redmine_root
|
24
|
+
@package_config.check_version
|
21
25
|
|
22
26
|
@temp_redmine.create_database_yml
|
23
27
|
@temp_redmine.create_configuration_yml
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module RedmineInstaller
|
2
|
+
class PackageConfig
|
3
|
+
include Utils
|
4
|
+
|
5
|
+
CONFIG_DIR = '_package'
|
6
|
+
|
7
|
+
def initialize(redmine)
|
8
|
+
@redmine = redmine
|
9
|
+
end
|
10
|
+
|
11
|
+
def min_version
|
12
|
+
options['min_version']
|
13
|
+
end
|
14
|
+
|
15
|
+
def dump_type
|
16
|
+
options['dump_type']
|
17
|
+
end
|
18
|
+
|
19
|
+
def dump_file
|
20
|
+
File.join(@redmine.root, CONFIG_DIR, options['dump_file'].to_s)
|
21
|
+
end
|
22
|
+
|
23
|
+
def dump_attached?
|
24
|
+
File.exist?(dump_file)
|
25
|
+
end
|
26
|
+
|
27
|
+
def sql_dump_file
|
28
|
+
if defined?(@sql_dump_file)
|
29
|
+
return @sql_dump_file
|
30
|
+
end
|
31
|
+
|
32
|
+
if !dump_attached?
|
33
|
+
@sql_dump_file = nil
|
34
|
+
end
|
35
|
+
|
36
|
+
if dump_file.end_with?('.gz')
|
37
|
+
@sql_dump_file = File.join(@redmine.root, CONFIG_DIR, 'dump.sql')
|
38
|
+
|
39
|
+
Zlib::GzipReader.open(dump_file) { |gz|
|
40
|
+
File.binwrite(@sql_dump_file, gz.read)
|
41
|
+
}
|
42
|
+
else
|
43
|
+
@sql_dump_file = dump_file
|
44
|
+
end
|
45
|
+
|
46
|
+
@sql_dump_file
|
47
|
+
end
|
48
|
+
|
49
|
+
def dump_compatible?(database)
|
50
|
+
database.adapter_name.start_with?(dump_type.to_s)
|
51
|
+
end
|
52
|
+
|
53
|
+
def options
|
54
|
+
@options ||= _options
|
55
|
+
end
|
56
|
+
|
57
|
+
def check_version
|
58
|
+
if min_version && Gem::Version.new(min_version) > Gem::Version.new(RedmineInstaller::VERSION)
|
59
|
+
error "You are using an old version of installer. Min version is #{min_version} (current: #{RedmineInstaller::VERSION}). Please run `gem install redmine-installer`."
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def _options
|
66
|
+
config_file = File.join(@redmine.root, CONFIG_DIR, 'redmine-installer.yaml')
|
67
|
+
|
68
|
+
if File.exist?(config_file)
|
69
|
+
YAML.load_file(config_file)
|
70
|
+
else
|
71
|
+
{}
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
@@ -204,7 +204,7 @@ module RedmineInstaller
|
|
204
204
|
# Ensuring database
|
205
205
|
rake_db_create
|
206
206
|
|
207
|
-
# Load database dump (if was set via CLI)
|
207
|
+
# Load database dump (if was set via CLI or attach on package)
|
208
208
|
load_database_dump
|
209
209
|
|
210
210
|
# Migrating
|
@@ -651,9 +651,7 @@ module RedmineInstaller
|
|
651
651
|
Dir.entries(plugins_path).include?('easyproject')
|
652
652
|
end
|
653
653
|
|
654
|
-
def
|
655
|
-
return if @database_dump_to_load.nil?
|
656
|
-
|
654
|
+
def load_database_dump_from_file
|
657
655
|
selected = prompt.select('Database dump will be loaded. Before that all data must be destroy.',
|
658
656
|
'Skip dump loading' => :cancel,
|
659
657
|
'I am aware of this. Want to continue' => :continue)
|
@@ -666,6 +664,23 @@ module RedmineInstaller
|
|
666
664
|
end
|
667
665
|
end
|
668
666
|
|
667
|
+
def load_database_dump_from_package
|
668
|
+
if !prompt.no?('Would you like to load default data? Warning: By choosing "yes", you are confirming that all your existing redmine data will be removed.')
|
669
|
+
|
670
|
+
@database.do_restore(task.package_config.sql_dump_file)
|
671
|
+
|
672
|
+
logger.info('Default database dump was loaded.')
|
673
|
+
end
|
674
|
+
end
|
675
|
+
|
676
|
+
def load_database_dump
|
677
|
+
if @database_dump_to_load
|
678
|
+
load_database_dump_from_file
|
679
|
+
elsif task.package_config.dump_attached? && task.package_config.dump_compatible?(@database)
|
680
|
+
load_database_dump_from_package
|
681
|
+
end
|
682
|
+
end
|
683
|
+
|
669
684
|
def without_env(*names)
|
670
685
|
backup = ENV.clone.to_hash
|
671
686
|
ENV.delete_if {|key, _| names.include?(key) }
|
data/spec/installer_helper.rb
CHANGED
@@ -66,9 +66,10 @@ module InstallerHelper
|
|
66
66
|
select_choice
|
67
67
|
end
|
68
68
|
|
69
|
-
def expected_successful_installation_or_upgrade(db_creating: false)
|
69
|
+
def expected_successful_installation_or_upgrade(db_creating: false, after_create: nil)
|
70
70
|
expected_output_in('--> Bundle install', 50)
|
71
71
|
expected_output_in('--> Database creating', 50) if db_creating
|
72
|
+
after_create && after_create.call
|
72
73
|
expected_output_in('--> Database migrating', 50)
|
73
74
|
expected_output_in('--> Plugins migration', 50)
|
74
75
|
expected_output_in('--> Generating secret token', 50)
|
@@ -79,9 +80,9 @@ module InstallerHelper
|
|
79
80
|
expected_output('Moving installer log ... OK')
|
80
81
|
end
|
81
82
|
|
82
|
-
def expected_successful_installation
|
83
|
+
def expected_successful_installation(**options)
|
83
84
|
expected_output('Redmine installing')
|
84
|
-
expected_successful_installation_or_upgrade(db_creating: true)
|
85
|
+
expected_successful_installation_or_upgrade(db_creating: true, **options)
|
85
86
|
expected_output('Redmine was installed')
|
86
87
|
end
|
87
88
|
|
data/spec/lib/install_spec.rb
CHANGED
@@ -144,4 +144,32 @@ RSpec.describe RedmineInstaller::Install, command: 'install' do
|
|
144
144
|
expected_redmine_version('3.4.5')
|
145
145
|
end
|
146
146
|
|
147
|
+
it 'high installer version', args: [package_high_installer_version] do
|
148
|
+
write(@redmine_root)
|
149
|
+
expected_output('You are using an old version of installer')
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'download redmine', args: [package_default_db] do
|
153
|
+
expected_output('Path to redmine root:')
|
154
|
+
write(@redmine_root)
|
155
|
+
|
156
|
+
expected_successful_configuration
|
157
|
+
expected_successful_installation(
|
158
|
+
after_create: proc {
|
159
|
+
expected_output('Would you like to load default data')
|
160
|
+
write('y')
|
161
|
+
expected_output('Database cleaning')
|
162
|
+
expected_output('Database restoring')
|
163
|
+
}
|
164
|
+
)
|
165
|
+
|
166
|
+
expected_redmine_version('3.4.5')
|
167
|
+
|
168
|
+
Dir.chdir(@redmine_root) do
|
169
|
+
out = `rails runner "puts Issue.count"`.strip
|
170
|
+
expect($?.success?).to be_truthy
|
171
|
+
expect(out).to eq('3')
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
147
175
|
end
|
data/spec/packages_helper.rb
CHANGED
@@ -16,4 +16,12 @@ module PackagesHelper
|
|
16
16
|
File.join(packages_dir, 'something-else.zip')
|
17
17
|
end
|
18
18
|
|
19
|
+
def package_high_installer_version
|
20
|
+
File.join(packages_dir, 'high-installer-version.zip')
|
21
|
+
end
|
22
|
+
|
23
|
+
def package_default_db
|
24
|
+
File.join(packages_dir, 'redmine-3.4.5-default-db.zip')
|
25
|
+
end
|
26
|
+
|
19
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redmine-installer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ondřej Moravčík
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/redmine-installer/install.rb
|
149
149
|
- lib/redmine-installer/logger.rb
|
150
150
|
- lib/redmine-installer/package.rb
|
151
|
+
- lib/redmine-installer/package_config.rb
|
151
152
|
- lib/redmine-installer/patches/ruby.rb
|
152
153
|
- lib/redmine-installer/patches/tty.rb
|
153
154
|
- lib/redmine-installer/profile.rb
|