bigkeeper 0.9.14 → 0.9.15
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/Gemfile.lock +1 -1
- data/lib/big_keeper/command/release.rb +49 -27
- data/lib/big_keeper/command/release/home.rb +25 -9
- data/lib/big_keeper/command/release/module.rb +36 -40
- data/lib/big_keeper/dependency/dep_gradle_operator.rb +159 -35
- data/lib/big_keeper/dependency/dep_operator.rb +18 -2
- data/lib/big_keeper/dependency/dep_pod_operator.rb +23 -26
- data/lib/big_keeper/util/bigkeeper_parser.rb +1 -1
- data/lib/big_keeper/util/git_operator.rb +17 -4
- data/lib/big_keeper/version.rb +1 -1
- metadata +2 -3
- data/lib/big_keeper/command/release/start.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07a6a50bde773caacd8472d77d8eace46a204ed3a221a11b608c76f4a7be8950
|
4
|
+
data.tar.gz: 44f47beb30ed88659c9488fd83062936008703beebd36a439931558af4daf1ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb051c59f2c1a559fc3ed31c17779a4c07e9da11224831e299bc4514be4d1d22ad5eb5e72f3e07543f719a0e85253c4e0a3d9ee0c93cd7dbc2a4f26d5c834c4a
|
7
|
+
data.tar.gz: d3cab185ee28e86108fca8ebf0d1a25ef718d157f93295cb64f66a84d1bf982ad7c4d76cde7a2dc4ff4fe2ab3ce4bbc3c74ab4f12c2c4459c893d3fce5ecceea
|
data/Gemfile.lock
CHANGED
@@ -1,64 +1,86 @@
|
|
1
1
|
require 'big_keeper/command/release/home'
|
2
2
|
require 'big_keeper/command/release/module'
|
3
3
|
require 'big_keeper/util/leancloud_logger'
|
4
|
-
require 'big_keeper/command/release/start'
|
5
4
|
require 'big_keeper/util/command_line_util'
|
6
5
|
|
7
6
|
module BigKeeper
|
8
7
|
def self.release_command
|
9
|
-
|
10
|
-
desc 'Release home project & module.'
|
8
|
+
desc 'Prerelease home project command'
|
11
9
|
command :prerelease do |c|
|
12
|
-
c.desc 'Prerelease home project.'
|
13
|
-
c.command :
|
14
|
-
|
15
|
-
LeanCloudLogger.instance.set_command("prerelease/home")
|
10
|
+
c.desc 'Prerelease home project start. (for Andriod)'
|
11
|
+
c.command :start do |start|
|
12
|
+
start.action do |global_options, options, args|
|
16
13
|
path = File.expand_path(global_options[:path])
|
17
14
|
version = global_options[:ver]
|
18
15
|
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
16
|
+
LeanCloudLogger.instance.set_command("prerelease/start")
|
17
|
+
|
18
|
+
help_now!('user name is required') if user and user.empty?
|
19
|
+
raise Logger.error("release version is required") if version == nil
|
19
20
|
modules = args[(0...args.length)] if args.length > 0
|
20
|
-
|
21
|
+
prerelease_start(path, version, user, modules)
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
24
|
-
c.desc '
|
25
|
-
c.
|
26
|
-
|
27
|
-
c.command :module do |m|
|
28
|
-
m.action do |global_options, options, args|
|
29
|
-
LeanCloudLogger.instance.set_command("prerelease/module")
|
25
|
+
c.desc 'Prerelease home project finish.'
|
26
|
+
c.command :finish do |finish|
|
27
|
+
finish.action do |global_options, options, args|
|
30
28
|
path = File.expand_path(global_options[:path])
|
31
29
|
version = global_options[:ver]
|
32
30
|
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
33
|
-
|
31
|
+
LeanCloudLogger.instance.set_command("prerelease/start")
|
32
|
+
|
33
|
+
help_now!('user name is required') if user and user.empty?
|
34
34
|
raise Logger.error("release version is required") if version == nil
|
35
35
|
modules = args[(0...args.length)] if args.length > 0
|
36
|
-
|
36
|
+
prerelease_finish(path, version, user, modules)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
desc '
|
41
|
+
desc 'Release home project & module.'
|
42
42
|
command :release do |c|
|
43
|
-
c.
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
43
|
+
c.desc 'Release home project & module.'
|
44
|
+
c.command :home do |home|
|
45
|
+
home.desc 'Start release home project'
|
46
|
+
home.command :start do |start|
|
47
|
+
start.action do |global_options, options, args|
|
48
|
+
path = File.expand_path(global_options[:path])
|
49
|
+
version = global_options[:ver]
|
50
|
+
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
51
|
+
LeanCloudLogger.instance.set_command("release/home/start")
|
52
|
+
|
53
|
+
help_now!('user name is required') if user and user.empty?
|
54
|
+
raise Logger.error("release version is required") if version == nil
|
55
|
+
modules = args[(0...args.length)] if args.length > 0
|
56
|
+
release_home_start(path, version, user, modules)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
home.desc 'Finish release home project'
|
61
|
+
home.command :finish do |finish|
|
62
|
+
finish.action do |global_options, options, args|
|
63
|
+
path = File.expand_path(global_options[:path])
|
64
|
+
version = global_options[:ver]
|
65
|
+
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
66
|
+
LeanCloudLogger.instance.set_command("release/home/finish")
|
67
|
+
|
68
|
+
help_now!('user name is required') if user and user.empty?
|
69
|
+
raise Logger.error("release version is required") if version == nil
|
70
|
+
release_home_finish(path, version, user, modules)
|
71
|
+
end
|
72
|
+
end
|
50
73
|
end
|
51
74
|
|
52
75
|
c.desc 'if ignore warning'
|
53
76
|
c.switch [:i,:ignore]
|
54
|
-
c.desc 'Release single module operations'
|
77
|
+
c.desc 'Release single module operations (for iOS)'
|
55
78
|
c.command :module do |m|
|
56
79
|
m.action do |global_options, options, args|
|
80
|
+
LeanCloudLogger.instance.set_command("release/module")
|
57
81
|
path = File.expand_path(global_options[:path])
|
58
82
|
version = global_options[:ver]
|
59
83
|
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
60
|
-
LeanCloudLogger.instance.set_command("release/module")
|
61
|
-
|
62
84
|
help_now!('module name is required') if args.length == 0
|
63
85
|
raise Logger.error("release version is required") if version == nil
|
64
86
|
modules = args[(0...args.length)] if args.length > 0
|
@@ -8,22 +8,38 @@ require 'big_keeper/util/xcode_operator'
|
|
8
8
|
require 'big_keeper/model/operate_type'
|
9
9
|
|
10
10
|
module BigKeeper
|
11
|
-
def self.
|
12
|
-
|
11
|
+
def self.prerelease_start(path, version, user, modules)
|
12
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
13
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
14
|
+
modules = BigkeeperParser.module_names
|
15
|
+
DepService.dep_operator(path, user).prerelease_start(path, version, user, modules)
|
13
16
|
end
|
14
17
|
|
15
|
-
def self.
|
18
|
+
def self.prerelease_finish(path, version, user, modules)
|
16
19
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
17
|
-
|
18
20
|
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
19
21
|
modules = BigkeeperParser.module_names
|
22
|
+
DepService.dep_operator(path, user).prerelease_finish(path, version, user, modules)
|
23
|
+
end
|
20
24
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
25
|
+
def self.release_home_start(path, version, user, modules)
|
26
|
+
DepService.dep_operator(path, user).release_home_start(path, version, user, modules)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.release_home_finish(path, version, user, modules)
|
30
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
31
|
+
|
32
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
33
|
+
modules = []
|
34
|
+
BigkeeperParser.module_names.each do |module_name|
|
35
|
+
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
36
|
+
if GitOperator.new.has_branch(module_full_path, "release/#{version}")
|
37
|
+
Logger.highlight("#{module_name} has release/#{version}")
|
38
|
+
modules << module_name
|
39
|
+
end
|
26
40
|
end
|
41
|
+
54322
|
42
|
+
DepService.dep_operator(path, user).release_home_finish(path, version, user, modules)
|
27
43
|
end
|
28
44
|
|
29
45
|
end
|
@@ -8,35 +8,6 @@ require 'big_keeper/util/logger'
|
|
8
8
|
require 'big_keeper/util/pod_operator'
|
9
9
|
|
10
10
|
module BigKeeper
|
11
|
-
def self.prerelease_module(path, version, user, modules, ignore)
|
12
|
-
for module_name in modules
|
13
|
-
release_module_start(path, version, user, module_name, ignore)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.release_module_start(path, version, user, module_name, ignore)
|
18
|
-
p module_name
|
19
|
-
BigkeeperParser.parse("#{path}/Bigkeeper")
|
20
|
-
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
21
|
-
module_path = BigkeeperParser.module_full_path(path, user, module_name)
|
22
|
-
|
23
|
-
# stash
|
24
|
-
StashService.new.stash(module_path, GitOperator.new.current_branch(module_path), module_name)
|
25
|
-
|
26
|
-
#check
|
27
|
-
if ignore != true
|
28
|
-
GitOperator.new.check_merge(module_path, "feature/#{version}")
|
29
|
-
GitOperator.new.check_diff(module_path, "develop", "master")
|
30
|
-
Logger.highlight(%Q(#{module_name} release check finish))
|
31
|
-
end
|
32
|
-
|
33
|
-
# checkout to develop branch
|
34
|
-
Logger.highlight(%Q(Start checkout #{module_name} to Branch develop))
|
35
|
-
GitService.new.verify_checkout_pull(module_path, "develop")
|
36
|
-
|
37
|
-
Logger.highlight(%Q(#{module_name} prerelease finish))
|
38
|
-
end
|
39
|
-
|
40
11
|
def self.release_module(path, version, user, modules, spec)
|
41
12
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
42
13
|
|
@@ -44,29 +15,47 @@ module BigKeeper
|
|
44
15
|
Logger.error('module prerelease interrupt')
|
45
16
|
end
|
46
17
|
|
47
|
-
|
48
|
-
release_module_start(path, version, user, module_name, true)
|
18
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
49
19
|
|
50
|
-
|
20
|
+
for module_name in modules
|
51
21
|
module_path = BigkeeperParser.module_full_path(path, user, module_name)
|
52
22
|
|
23
|
+
StashService.new.stash(module_path, GitOperator.new.current_branch(module_path), module_name)
|
24
|
+
GitService.new.verify_checkout_pull(module_path, "release/#{version}")
|
25
|
+
GitService.new.verify_checkout_pull(module_path, "develop")
|
26
|
+
|
27
|
+
has_diff = release_module_pre_check(module_path, module_name, version)
|
28
|
+
|
29
|
+
if has_diff
|
30
|
+
# merge release to develop
|
31
|
+
branch_name = GitOperator.new.current_branch(module_path)
|
32
|
+
if branch_name == "develop"
|
33
|
+
GitOperator.new.merge_no_ff(module_path, "release/#{version}")
|
34
|
+
GitOperator.new.push_to_remote(module_path, "develop")
|
35
|
+
else
|
36
|
+
Logger.error("current branch is not develop branch")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
53
40
|
# check commit
|
54
41
|
Logger.error("current branch has unpush files") if GitOperator.new.has_changes(module_path)
|
55
42
|
|
56
|
-
#修改 podspec 文件
|
57
|
-
# TO DO: - advanced to use Regular Expression
|
58
|
-
has_change = PodfileOperator.new.podspec_change(%Q(#{module_path}/#{module_name}.podspec), version, module_name)
|
59
|
-
GitService.new.verify_push(module_path, "Change version number", "develop", "#{module_name}") if has_change == true
|
60
|
-
|
61
43
|
# check out master
|
62
44
|
Logger.highlight("'#{module_name}' checkout branch to master...")
|
63
45
|
GitService.new.verify_checkout_pull(module_path, "master")
|
64
46
|
|
65
|
-
|
66
|
-
|
67
|
-
|
47
|
+
# merge release to master
|
48
|
+
GitOperator.new.merge_no_ff(module_path, "release/#{version}")
|
49
|
+
|
50
|
+
Logger.highlight(%Q(Merge "release/#{version}" to master))
|
51
|
+
|
68
52
|
GitOperator.new.push_to_remote(module_path, "master")
|
69
53
|
|
54
|
+
#修改 podspec 文件
|
55
|
+
# TO DO: - advanced to use Regular Expression
|
56
|
+
# has_change = PodfileOperator.new.podspec_change(%Q(#{module_path}/#{module_name}.podspec), version, module_name)
|
57
|
+
# GitService.new.verify_push(module_path, "Change version number", "master", "#{module_name}") if has_change == true
|
58
|
+
|
70
59
|
GitOperator.new.tag(module_path, version)
|
71
60
|
# pod repo push
|
72
61
|
if spec == true
|
@@ -75,4 +64,11 @@ module BigKeeper
|
|
75
64
|
end
|
76
65
|
end
|
77
66
|
|
67
|
+
def self.release_module_pre_check(module_path, module_name, version)
|
68
|
+
#check
|
69
|
+
#GitOperator.new.check_merge(module_path, "feature/#{version}")
|
70
|
+
Logger.highlight(%Q(#{module_name} release pre-check finish))
|
71
|
+
return GitOperator.new.check_diff(module_path, "develop", "release/#{version}")
|
72
|
+
end
|
73
|
+
|
78
74
|
end
|
@@ -57,22 +57,149 @@ module BigKeeper
|
|
57
57
|
VersionConfigOperator.change_version(version_config_file, modules, version)
|
58
58
|
end
|
59
59
|
|
60
|
-
def
|
61
|
-
version_config_file = "#{@path}/doc/config/version-config.gradle"
|
62
|
-
version = "#{version}-SNAPSHOT" unless version.include?'SNAPSHOT'
|
63
|
-
VersionConfigOperator.change_version(version_config_file, modules, version)
|
60
|
+
def open
|
64
61
|
end
|
65
62
|
|
66
|
-
def
|
67
|
-
|
68
|
-
|
63
|
+
def release_check_changed_modules(path, user)
|
64
|
+
changed_modules = []
|
65
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
66
|
+
allModules = BigkeeperParser.module_names
|
67
|
+
allModules.each do |module_name|
|
68
|
+
if ModuleService.new.release_check_changed(path, user, module_name)
|
69
|
+
changed_modules << module_name
|
70
|
+
end
|
71
|
+
end
|
72
|
+
changed_modules
|
69
73
|
end
|
70
74
|
|
71
|
-
|
75
|
+
## release cmd
|
76
|
+
def release_home_start(path, version, user, modules)
|
77
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
78
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
79
|
+
modules = BigkeeperParser.module_names
|
80
|
+
|
81
|
+
if modules.nil? || modules.empty?
|
82
|
+
Logger.default('no module need to release')
|
83
|
+
end
|
84
|
+
|
85
|
+
#stash home
|
86
|
+
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
87
|
+
# delete cache
|
88
|
+
CacheOperator.new(path).clean()
|
89
|
+
# check
|
90
|
+
GitOperator.new.check_diff(path, "develop", "master")
|
91
|
+
|
92
|
+
#checkout release branch
|
93
|
+
Logger.highlight(%Q(Start to checkout Home Branch release/#{version}))
|
94
|
+
|
95
|
+
GitService.new.verify_checkout(path, "release/#{version}")
|
96
|
+
|
97
|
+
raise Logger.error("Chechout release/#{version} failed.") unless GitOperator.new.current_branch(path) == "release/#{version}"
|
98
|
+
|
99
|
+
Logger.highlight(%Q(Finish to release/#{version} for home project))
|
100
|
+
|
101
|
+
if !modules.nil? && !modules.empty?
|
102
|
+
modules.each do |module_name|
|
103
|
+
Logger.highlight("release checkout release/#{version} for #{module_name}")
|
104
|
+
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
105
|
+
|
106
|
+
if GitOperator.new.has_branch(module_full_path, "release/#{version}")
|
107
|
+
Logger.highlight("#{module_name} has release/#{version}")
|
108
|
+
GitService.new.verify_checkout_pull(module_full_path, "release/#{version}")
|
109
|
+
else
|
110
|
+
Logger.highlight("#{module_name} dont have release/#{version}")
|
111
|
+
GitService.new.verify_checkout(module_full_path, "release/#{version}")
|
112
|
+
Logger.highlight("Push branch release/'#{version}' for #{module_name}...")
|
113
|
+
GitOperator.new.push_to_remote(module_full_path, "release/#{version}")
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
Logger.highlight("Home project release home start finished")
|
72
119
|
end
|
73
120
|
|
74
|
-
def
|
121
|
+
def release_home_finish(path, version, user, modules)
|
75
122
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
123
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
124
|
+
|
125
|
+
if modules.nil? || modules.empty?
|
126
|
+
Logger.default('no module need to release')
|
127
|
+
end
|
128
|
+
|
129
|
+
#stash home
|
130
|
+
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
131
|
+
# delete cache
|
132
|
+
CacheOperator.new(path).clean()
|
133
|
+
# check
|
134
|
+
GitOperator.new.check_diff(path, "develop", "master")
|
135
|
+
|
136
|
+
for module_name in modules
|
137
|
+
module_path = BigkeeperParser.module_full_path(path, user, module_name)
|
138
|
+
|
139
|
+
StashService.new.stash(module_path, GitOperator.new.current_branch(module_path), module_name)
|
140
|
+
GitService.new.verify_checkout_pull(module_path, "release/#{version}")
|
141
|
+
GitService.new.verify_checkout_pull(module_path, "develop")
|
142
|
+
|
143
|
+
has_diff = GitOperator.new.check_diff(module_path, "develop", "release/#{version}")
|
144
|
+
if has_diff
|
145
|
+
branch_name = GitOperator.new.current_branch(module_path)
|
146
|
+
if branch_name == "develop"
|
147
|
+
GitOperator.new.merge_no_ff(module_path, "release/#{version}")
|
148
|
+
GitOperator.new.push_to_remote(module_path, "develop")
|
149
|
+
else
|
150
|
+
Logger.error("current branch is not develop branch")
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
# check out master
|
155
|
+
Logger.highlight("'#{module_name}' checkout branch to master...")
|
156
|
+
GitService.new.verify_checkout_pull(module_path, "master")
|
157
|
+
|
158
|
+
# merge release to master
|
159
|
+
GitOperator.new.merge_no_ff(module_path, "release/#{version}")
|
160
|
+
Logger.highlight(%Q(Merge "release/#{version}" to master))
|
161
|
+
GitOperator.new.push_to_remote(module_path, "master")
|
162
|
+
end
|
163
|
+
|
164
|
+
if GitOperator.new.has_branch(path, "release/#{version}")
|
165
|
+
|
166
|
+
GitService.new.verify_checkout_pull(path, "release/#{version}")
|
167
|
+
|
168
|
+
PodfileOperator.new.replace_all_module_release(path, user, modules, ModuleOperateType::RELEASE)
|
169
|
+
|
170
|
+
GitService.new.verify_push(path, "finish release branch", "release/#{version}", 'Home')
|
171
|
+
|
172
|
+
# master
|
173
|
+
GitService.new.verify_checkout(path, "master")
|
174
|
+
GitOperator.new.merge(path, "release/#{version}")
|
175
|
+
GitService.new.verify_push(path, "release V#{version}", "master", 'Home')
|
176
|
+
|
177
|
+
GitOperator.new.tag(path, version)
|
178
|
+
|
179
|
+
# release branch
|
180
|
+
GitOperator.new.checkout(path, "release/#{version}")
|
181
|
+
CacheOperator.new(path).load('Podfile')
|
182
|
+
CacheOperator.new(path).clean()
|
183
|
+
GitOperator.new.commit(path, "reset #{version} Podfile")
|
184
|
+
GitService.new.verify_push(path, "reset #{version} Podfile", "release/#{version}", 'Home')
|
185
|
+
|
186
|
+
# develop
|
187
|
+
GitOperator.new.checkout(path, "develop")
|
188
|
+
GitOperator.new.merge(path, "release/#{version}")
|
189
|
+
GitService.new.verify_push(path, "merge release/#{version} to develop", "develop", 'Home')
|
190
|
+
GitOperator.new.check_diff(path, "develop", "master")
|
191
|
+
|
192
|
+
Logger.highlight("Finish release home for #{version}")
|
193
|
+
else
|
194
|
+
raise Logger.error("There is no release/#{version} branch, please use release home start first.")
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
198
|
+
|
199
|
+
## prerelease cmd
|
200
|
+
def prerelease_start(path, version, user, modules)
|
201
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
202
|
+
|
76
203
|
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
77
204
|
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
78
205
|
|
@@ -93,20 +220,13 @@ module BigKeeper
|
|
93
220
|
|
94
221
|
modules.each do |module_name|
|
95
222
|
Logger.highlight("release start module #{module_name}")
|
96
|
-
ModuleService.new.release_start(path, user, modules, module_name, version)
|
97
|
-
|
98
|
-
# Push home changes to remote
|
99
223
|
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
100
|
-
|
101
|
-
GitService.new.verify_push(
|
102
|
-
module_full_path,
|
103
|
-
"release start for #{version}",
|
104
|
-
'develop',
|
105
|
-
"#{module_name}")
|
224
|
+
ModuleService.new.release_start(path, user, modules, module_name, version)
|
225
|
+
GitService.new.verify_push(module_full_path, "Change version to #{version}-SNAPSHOT", "develop", module_name)
|
106
226
|
end
|
107
227
|
|
108
228
|
#release home
|
109
|
-
DepService.dep_operator(path, user).
|
229
|
+
DepService.dep_operator(path, user).prerelease_home_start(path, version, user, modules)
|
110
230
|
|
111
231
|
# Push home changes to remote
|
112
232
|
Logger.highlight("Push branch 'develop' for 'Home'...")
|
@@ -117,17 +237,10 @@ module BigKeeper
|
|
117
237
|
'Home')
|
118
238
|
end
|
119
239
|
|
120
|
-
def
|
240
|
+
def prerelease_finish(path, version, user, modules)
|
121
241
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
122
242
|
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
123
|
-
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
124
243
|
|
125
|
-
if modules.nil? || modules.empty?
|
126
|
-
Logger.error('no module need to release')
|
127
|
-
end
|
128
|
-
if !CommandLineUtil.double_check("module #{modules} will changed version to #{version}, are you sure?")
|
129
|
-
Logger.error('release finish interrupt')
|
130
|
-
end
|
131
244
|
#stash home
|
132
245
|
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
133
246
|
# delete cache
|
@@ -136,20 +249,31 @@ module BigKeeper
|
|
136
249
|
GitService.new.verify_checkout_pull(path, 'develop')
|
137
250
|
|
138
251
|
modules.each do |module_name|
|
139
|
-
|
140
|
-
|
252
|
+
Logger.highlight("release start module #{module_name}")
|
253
|
+
ModuleService.new.release_finish(path, user, modules, module_name, version)
|
141
254
|
end
|
142
255
|
|
143
|
-
#release home
|
144
|
-
DepService.dep_operator(path, user).
|
256
|
+
# release home
|
257
|
+
DepService.dep_operator(path, user).prerelease_home_finish(path, version, user, modules)
|
145
258
|
|
146
259
|
# Push home changes to remote
|
147
260
|
Logger.highlight("Push branch 'develop' for 'Home'...")
|
148
261
|
GitService.new.verify_push(
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
262
|
+
path,
|
263
|
+
"release finish for #{version}",
|
264
|
+
'develop',
|
265
|
+
'Home')
|
266
|
+
end
|
267
|
+
|
268
|
+
def prerelease_home_start(path, version, user, modules)
|
269
|
+
version_config_file = "#{path}/doc/config/version-config.gradle"
|
270
|
+
version = "#{version}-SNAPSHOT" unless version.include?'SNAPSHOT'
|
271
|
+
VersionConfigOperator.change_version(version_config_file, modules, version)
|
272
|
+
end
|
273
|
+
|
274
|
+
def prerelease_home_finish(path, version, user, modules)
|
275
|
+
version_config_file = "#{@path}/doc/config/version-config.gradle"
|
276
|
+
VersionConfigOperator.change_version(version_config_file, modules, version)
|
153
277
|
end
|
154
278
|
|
155
279
|
end
|
@@ -21,6 +21,22 @@ module BigKeeper
|
|
21
21
|
raise "You should override this method in subclass."
|
22
22
|
end
|
23
23
|
|
24
|
+
def prerelease_start(path, version, user, modules)
|
25
|
+
raise "You should override this method in subclass."
|
26
|
+
end
|
27
|
+
|
28
|
+
def prerelease_finish(path, version, user, modules)
|
29
|
+
raise "You should override this method in subclass."
|
30
|
+
end
|
31
|
+
|
32
|
+
def prerelease_home_start(path, version, user, modules)
|
33
|
+
raise "You should override this method in subclass."
|
34
|
+
end
|
35
|
+
|
36
|
+
def prerelease_home_finish(path, version, user, modules)
|
37
|
+
raise "You should override this method in subclass."
|
38
|
+
end
|
39
|
+
|
24
40
|
def release_module_start(modules, module_name, version)
|
25
41
|
raise "You should override this method in subclass."
|
26
42
|
end
|
@@ -29,11 +45,11 @@ module BigKeeper
|
|
29
45
|
raise "You should override this method in subclass."
|
30
46
|
end
|
31
47
|
|
32
|
-
def release_home_start(
|
48
|
+
def release_home_start(path, version, user, modules)
|
33
49
|
raise "You should override this method in subclass."
|
34
50
|
end
|
35
51
|
|
36
|
-
def release_home_finish(
|
52
|
+
def release_home_finish(path, version, user, modules)
|
37
53
|
raise "You should override this method in subclass."
|
38
54
|
end
|
39
55
|
|
@@ -75,10 +75,6 @@ module BigKeeper
|
|
75
75
|
Logger.default("#{module_name} lastest tag is #{lastest_tag}, this tag not publish.")
|
76
76
|
"#{$1}pod '#{module_name}#{$4}', :git => '#{module_git}', :tag => '#{lastest_tag}'"
|
77
77
|
end
|
78
|
-
elsif ModuleOperateType::RELEASE_START == module_operate_type
|
79
|
-
module_git = BigkeeperParser.module_git(module_name)
|
80
|
-
branch_name = GitOperator.new.current_branch(@path)
|
81
|
-
"#{$1}pod '#{module_name}#{$4}', :git => '#{module_git}', :branch => '#{branch_name}'"
|
82
78
|
else
|
83
79
|
line
|
84
80
|
end
|
@@ -129,10 +125,9 @@ module BigKeeper
|
|
129
125
|
end
|
130
126
|
end
|
131
127
|
|
132
|
-
def
|
128
|
+
def release_home_start(path, version, user, modules)
|
133
129
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
134
130
|
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
135
|
-
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
136
131
|
|
137
132
|
if modules.nil? || modules.empty?
|
138
133
|
Logger.default('no module need to release')
|
@@ -158,30 +153,32 @@ module BigKeeper
|
|
158
153
|
|
159
154
|
Logger.highlight(%Q(Finish to release/#{version} for home project))
|
160
155
|
|
161
|
-
modules.
|
162
|
-
|
163
|
-
|
156
|
+
if !modules.nil? && !modules.empty?
|
157
|
+
modules.each do |module_name|
|
158
|
+
Logger.highlight("release checkout release/#{version} for #{module_name}")
|
159
|
+
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
164
160
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
161
|
+
if GitOperator.new.has_branch(module_full_path, "release/#{version}")
|
162
|
+
Logger.highlight("#{module_name} has release/#{version}")
|
163
|
+
GitService.new.verify_checkout_pull(module_full_path, "release/#{version}")
|
164
|
+
else
|
165
|
+
Logger.highlight("#{module_name} dont have release/#{version}")
|
166
|
+
ModuleService.new.release_start(path, user, modules, module_name, version)
|
167
|
+
Logger.highlight("Push branch release/'#{version}' for #{module_name}...")
|
168
|
+
GitOperator.new.push_to_remote(module_full_path, "release/#{version}")
|
169
|
+
end
|
174
170
|
|
175
|
-
|
176
|
-
|
177
|
-
|
171
|
+
DepService.dep_operator(path, user).update_module_config(
|
172
|
+
module_name,
|
173
|
+
ModuleOperateType::RELEASE_START)
|
174
|
+
end
|
178
175
|
end
|
179
176
|
|
180
177
|
# step 3 change Info.plist value
|
181
178
|
InfoPlistOperator.new.change_version_build(path, version)
|
182
179
|
|
183
180
|
GitService.new.verify_push(path, "Change version to #{version}", "release/#{version}", 'Home')
|
184
|
-
|
181
|
+
DepService.dep_operator(path, user).install(modules, OperateType::RELEASE, true)
|
185
182
|
XcodeOperator.open_workspace(path)
|
186
183
|
end
|
187
184
|
|
@@ -190,20 +187,20 @@ module BigKeeper
|
|
190
187
|
GitService.new.verify_checkout(module_full_path, "release/#{version}")
|
191
188
|
end
|
192
189
|
|
193
|
-
def
|
190
|
+
def release_home_finish(path, version, user, modules)
|
194
191
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
195
192
|
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
196
|
-
modules = BigkeeperParser.module_names
|
197
193
|
|
198
194
|
if GitOperator.new.has_branch(path, "release/#{version}")
|
199
|
-
|
195
|
+
|
196
|
+
GitService.new.verify_checkout_pull(path, "release/#{version}")
|
200
197
|
|
201
198
|
PodfileOperator.new.replace_all_module_release(path, user, modules, ModuleOperateType::RELEASE)
|
202
199
|
|
203
200
|
GitService.new.verify_push(path, "finish release branch", "release/#{version}", 'Home')
|
204
201
|
|
205
202
|
# master
|
206
|
-
|
203
|
+
GitService.new.verify_checkout(path, "master")
|
207
204
|
GitOperator.new.merge(path, "release/#{version}")
|
208
205
|
GitService.new.verify_push(path, "release V#{version}", "master", 'Home')
|
209
206
|
|
@@ -46,8 +46,8 @@ module BigKeeper
|
|
46
46
|
@@current_user = ''
|
47
47
|
|
48
48
|
def self.parse(bigkeeper)
|
49
|
+
@@config = {}
|
49
50
|
if @@config.empty?
|
50
|
-
|
51
51
|
Logger.error("Can't find a Bigkeeper file in current directory.") if !FileOperator.definitely_exists?(bigkeeper)
|
52
52
|
|
53
53
|
content = File.read(bigkeeper, :encoding => 'UTF-8')
|
@@ -83,7 +83,8 @@ module BigKeeper
|
|
83
83
|
|
84
84
|
def pull(path)
|
85
85
|
Dir.chdir(path) do
|
86
|
-
|
86
|
+
# git pull <remote> <branch>
|
87
|
+
`git pull #{GitOperator.remote_local_name(path)} #{GitOperator.new.current_branch(path)}`
|
87
88
|
end
|
88
89
|
end
|
89
90
|
|
@@ -219,15 +220,27 @@ module BigKeeper
|
|
219
220
|
compare_branch_commits.map { |item|
|
220
221
|
Logger.default(item)
|
221
222
|
}
|
222
|
-
Logger.
|
223
|
+
Logger.highlight("#{compare_branch} branch has commit doesn't committed in #{branch}, please check")
|
224
|
+
return false
|
223
225
|
else
|
224
226
|
Logger.highlight("#{compare_branch} branch doesn't have commit before #{branch}")
|
227
|
+
return true
|
225
228
|
end
|
226
229
|
end
|
227
230
|
|
228
231
|
def merge(path, branch_name)
|
229
|
-
IO.popen("cd '#{path}'; git merge #{branch_name}") do |
|
230
|
-
|
232
|
+
IO.popen("cd '#{path}'; git merge #{branch_name}") do |io|
|
233
|
+
io.each do |line|
|
234
|
+
Logger.error("Merge conflict in #{line}") if line.include? 'Merge conflict'
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
def merge_no_ff(path, branch_name)
|
240
|
+
IO.popen("cd '#{path}'; git merge #{branch_name} --no-ff") do |io|
|
241
|
+
io.each do |line|
|
242
|
+
Logger.error("Merge conflict in #{line}") if line.include? 'Merge conflict'
|
243
|
+
end
|
231
244
|
end
|
232
245
|
end
|
233
246
|
|
data/lib/big_keeper/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigkeeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mmoaay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -276,7 +276,6 @@ files:
|
|
276
276
|
- lib/big_keeper/command/release/home.rb
|
277
277
|
- lib/big_keeper/command/release/module.rb
|
278
278
|
- lib/big_keeper/command/release/publish.rb
|
279
|
-
- lib/big_keeper/command/release/start.rb
|
280
279
|
- lib/big_keeper/command/spec.rb
|
281
280
|
- lib/big_keeper/command/spec/add.rb
|
282
281
|
- lib/big_keeper/command/spec/analyze.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module BigKeeper
|
2
|
-
def self.release_check_changed_modules(path, user)
|
3
|
-
changed_modules = []
|
4
|
-
BigkeeperParser.parse("#{path}/Bigkeeper")
|
5
|
-
allModules = BigkeeperParser.module_names
|
6
|
-
allModules.each do |module_name|
|
7
|
-
if ModuleService.new.release_check_changed(path, user, module_name)
|
8
|
-
changed_modules << module_name
|
9
|
-
end
|
10
|
-
end
|
11
|
-
changed_modules
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|