bigkeeper 0.9.12 → 0.9.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/big_keeper/command/feature&hotfix.rb +28 -0
- data/lib/big_keeper/command/feature&hotfix/module.rb +85 -0
- data/lib/big_keeper/command/feature&hotfix/publish.rb +2 -1
- data/lib/big_keeper/command/release.rb +37 -67
- data/lib/big_keeper/command/release/home.rb +8 -71
- data/lib/big_keeper/command/release/module.rb +36 -23
- data/lib/big_keeper/command/release/start.rb +1 -65
- data/lib/big_keeper/dependency/dep_gradle_operator.rb +82 -0
- data/lib/big_keeper/dependency/dep_pod_operator.rb +106 -2
- data/lib/big_keeper/model/operate_type.rb +1 -0
- data/lib/big_keeper/service/module_service.rb +0 -8
- data/lib/big_keeper/util/bigkeeper_parser.rb +2 -1
- data/lib/big_keeper/util/cache_operator.rb +3 -1
- data/lib/big_keeper/version.rb +1 -1
- metadata +5 -4
- data/lib/big_keeper/command/release/finish.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e751a206b1442e0848d2b6dfacc760f5d656bfc17b1274841a2091a62e6514b
|
4
|
+
data.tar.gz: 22fc192c12e254bf5d449f7681d49bf0b10cf68774b209f2be04c3af95cd55ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da2b7fdf30d1c5e1f196b9c63b73c393c2816ac9a53c60479333d9168d8adce26406083f10a12788365ff7b6dcec89e23d06bbc9bac9a23662f05917af7801f5
|
7
|
+
data.tar.gz: 3f8171e5002173aac2cc02b53eff96d388019f958b8b55d11bd596b490e455df4143eb281c4e65319f0622bfb120987915d5365084631bb0826078414c3b1579
|
data/Gemfile.lock
CHANGED
@@ -8,6 +8,7 @@ require 'big_keeper/command/feature&hotfix/rebase'
|
|
8
8
|
require 'big_keeper/command/feature&hotfix/publish'
|
9
9
|
require 'big_keeper/command/feature&hotfix/delete'
|
10
10
|
require 'big_keeper/command/feature&hotfix/list'
|
11
|
+
require 'big_keeper/command/feature&hotfix/module'
|
11
12
|
require 'big_keeper/util/leancloud_logger'
|
12
13
|
|
13
14
|
module BigKeeper
|
@@ -43,6 +44,33 @@ module BigKeeper
|
|
43
44
|
end
|
44
45
|
end
|
45
46
|
|
47
|
+
c.desc "Modules operate for the #{GitflowType.name(type)}"
|
48
|
+
c.command :module do |m|
|
49
|
+
m.desc "Add modules for the #{GitflowType.name(type)}"
|
50
|
+
m.command :add do |add|
|
51
|
+
add.action do |global_options, options, args|
|
52
|
+
path = File.expand_path(global_options[:path])
|
53
|
+
version = global_options[:ver]
|
54
|
+
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
55
|
+
LeanCloudLogger.instance.set_command("feature/module/add")
|
56
|
+
modules = args[(0...args.length)] if args.length > 0
|
57
|
+
module_add(path, user, modules, type)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
m.desc "delete modules for the #{GitflowType.name(type)}"
|
62
|
+
m.command :delete do |delete|
|
63
|
+
delete.action do |global_options, options, args|
|
64
|
+
path = File.expand_path(global_options[:path])
|
65
|
+
version = global_options[:ver]
|
66
|
+
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
67
|
+
LeanCloudLogger.instance.set_command("feature/module/delete")
|
68
|
+
modules = args[(0...args.length)] if args.length > 0
|
69
|
+
module_del(path, user, modules, type)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
46
74
|
c.desc "Switch to the #{GitflowType.name(type)} with name"
|
47
75
|
c.command :switch do |switch|
|
48
76
|
switch.action do |global_options, options, args|
|
@@ -0,0 +1,85 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'big_keeper/util/podfile_operator'
|
4
|
+
require 'big_keeper/util/gitflow_operator'
|
5
|
+
require 'big_keeper/util/bigkeeper_parser'
|
6
|
+
require 'big_keeper/util/logger'
|
7
|
+
require 'big_keeper/util/pod_operator'
|
8
|
+
require 'big_keeper/util/xcode_operator'
|
9
|
+
require 'big_keeper/util/cache_operator'
|
10
|
+
require 'big_keeper/model/operate_type'
|
11
|
+
require 'big_keeper/dependency/dep_service'
|
12
|
+
|
13
|
+
require 'big_keeper/dependency/dep_type'
|
14
|
+
|
15
|
+
require 'big_keeper/service/stash_service'
|
16
|
+
require 'big_keeper/service/module_service'
|
17
|
+
|
18
|
+
|
19
|
+
module BigKeeper
|
20
|
+
def self.module_add(path, user, modules, type)
|
21
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
22
|
+
branch_name = GitOperator.new.current_branch(path)
|
23
|
+
|
24
|
+
Logger.error("Not a #{GitflowType.name(type)} branch, exit.") unless branch_name.include? GitflowType.name(type)
|
25
|
+
|
26
|
+
full_name = branch_name.gsub(/#{GitflowType.name(type)}\//, '')
|
27
|
+
|
28
|
+
current_modules = ModuleCacheOperator.new(path).current_path_modules
|
29
|
+
|
30
|
+
# Verify input modules
|
31
|
+
modules = BigkeeperParser.verify_modules(modules)
|
32
|
+
|
33
|
+
Logger.highlight("Start to update modules for branch '#{branch_name}'...")
|
34
|
+
|
35
|
+
add_modules = modules - current_modules
|
36
|
+
|
37
|
+
if add_modules.empty?
|
38
|
+
Logger.default("There is nothing changed with modules #{modules}.")
|
39
|
+
else
|
40
|
+
# Modify podfile as path and Start modules feature
|
41
|
+
add_modules.each do |module_name|
|
42
|
+
ModuleCacheOperator.new(path).add_path_module(module_name)
|
43
|
+
ModuleService.new.add(path, user, module_name, full_name, type)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Install
|
48
|
+
DepService.dep_operator(path, user).install(modules, OperateType::UPDATE, false)
|
49
|
+
|
50
|
+
# Open home workspace
|
51
|
+
DepService.dep_operator(path, user).open
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.module_del(path, user, modules, type)
|
55
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
56
|
+
branch_name = GitOperator.new.current_branch(path)
|
57
|
+
|
58
|
+
Logger.error("Not a #{GitflowType.name(type)} branch, exit.") unless branch_name.include? GitflowType.name(type)
|
59
|
+
|
60
|
+
full_name = branch_name.gsub(/#{GitflowType.name(type)}\//, '')
|
61
|
+
|
62
|
+
current_modules = ModuleCacheOperator.new(path).current_path_modules
|
63
|
+
|
64
|
+
# Verify input modules
|
65
|
+
modules = BigkeeperParser.verify_modules(modules)
|
66
|
+
|
67
|
+
Logger.highlight("Start to update modules for branch '#{branch_name}'...")
|
68
|
+
|
69
|
+
if modules.empty?
|
70
|
+
Logger.default("There is nothing changed with modules #{modules}.")
|
71
|
+
else
|
72
|
+
# Modify podfile as path and Start modules feature
|
73
|
+
modules.each do |module_name|
|
74
|
+
ModuleCacheOperator.new(path).del_path_module(module_name)
|
75
|
+
ModuleService.new.del(path, user, module_name, full_name, type)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Install
|
80
|
+
DepService.dep_operator(path, user).install(modules, OperateType::UPDATE, false)
|
81
|
+
|
82
|
+
# Open home workspace
|
83
|
+
DepService.dep_operator(path, user).open
|
84
|
+
end
|
85
|
+
end
|
@@ -41,8 +41,9 @@ module BigKeeper
|
|
41
41
|
|
42
42
|
Logger.highlight("Publish branch '#{branch_name}' for 'Home'")
|
43
43
|
|
44
|
+
# [CHG] try to fix publish bug
|
44
45
|
# Recover home
|
45
|
-
DepService.dep_operator(path, user).recover
|
46
|
+
# DepService.dep_operator(path, user).recover
|
46
47
|
|
47
48
|
# Push home changes to remote
|
48
49
|
GitService.new.verify_push(path, "publish branch #{branch_name}", branch_name, 'Home')
|
@@ -2,97 +2,67 @@ require 'big_keeper/command/release/home'
|
|
2
2
|
require 'big_keeper/command/release/module'
|
3
3
|
require 'big_keeper/util/leancloud_logger'
|
4
4
|
require 'big_keeper/command/release/start'
|
5
|
-
require 'big_keeper/command/release/finish'
|
6
5
|
require 'big_keeper/util/command_line_util'
|
7
6
|
|
8
7
|
module BigKeeper
|
9
8
|
def self.release_command
|
10
|
-
desc 'Gitflow release operations'
|
11
|
-
command :release do |c|
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
desc 'Release home project & module.'
|
11
|
+
command :prerelease do |c|
|
12
|
+
c.desc 'Prerelease home project.'
|
13
|
+
c.command :home do |home|
|
14
|
+
home.action do |global_options, options, args|
|
15
|
+
LeanCloudLogger.instance.set_command("prerelease/home")
|
16
16
|
path = File.expand_path(global_options[:path])
|
17
17
|
version = global_options[:ver]
|
18
18
|
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
19
19
|
modules = args[(0...args.length)] if args.length > 0
|
20
|
-
|
20
|
+
prerelease(path, version, user, modules)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
c.desc '
|
25
|
-
c.
|
26
|
-
|
24
|
+
c.desc 'if ignore warning'
|
25
|
+
c.switch [:i,:ignore]
|
26
|
+
c.desc 'Release single module operations'
|
27
|
+
c.command :module do |m|
|
28
|
+
m.action do |global_options, options, args|
|
29
|
+
LeanCloudLogger.instance.set_command("prerelease/module")
|
27
30
|
path = File.expand_path(global_options[:path])
|
28
31
|
version = global_options[:ver]
|
29
32
|
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
33
|
+
help_now!('module name is required') if args.length == 0
|
34
|
+
raise Logger.error("release version is required") if version == nil
|
30
35
|
modules = args[(0...args.length)] if args.length > 0
|
31
|
-
|
36
|
+
prerelease_module(path, version, user, modules, false)
|
32
37
|
end
|
33
38
|
end
|
39
|
+
end
|
34
40
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
help_now!('user name is required') if user and user.empty?
|
46
|
-
raise Logger.error("release version is required") if version == nil
|
47
|
-
release_home_start(path, version, user)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
home.desc 'Finish release home project'
|
52
|
-
home.command :finish do |finish|
|
53
|
-
finish.action do |global_options, options, args|
|
54
|
-
path = File.expand_path(global_options[:path])
|
55
|
-
version = global_options[:ver]
|
56
|
-
LeanCloudLogger.instance.set_command("release/home/finish")
|
57
|
-
|
58
|
-
raise Logger.error("release version is required") if version == nil
|
59
|
-
release_home_finish(path, version)
|
60
|
-
end
|
61
|
-
end
|
41
|
+
desc 'Gitflow release operations'
|
42
|
+
command :release do |c|
|
43
|
+
c.action do |global_options, options, args|
|
44
|
+
LeanCloudLogger.instance.set_command("release")
|
45
|
+
path = File.expand_path(global_options[:path])
|
46
|
+
version = global_options[:ver]
|
47
|
+
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
48
|
+
modules = args[(0...args.length)] if args.length > 0
|
49
|
+
release(path, version, user, modules)
|
62
50
|
end
|
63
51
|
|
64
|
-
c.desc '
|
52
|
+
c.desc 'if ignore warning'
|
65
53
|
c.switch [:i,:ignore]
|
54
|
+
c.desc 'Release single module operations'
|
66
55
|
c.command :module do |m|
|
67
|
-
m.
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
73
|
-
LeanCloudLogger.instance.set_command("release/module/start")
|
74
|
-
|
75
|
-
help_now!('module name is required') if args.length != 1
|
76
|
-
raise Logger.error("release version is required") if version == nil
|
77
|
-
module_name = args[0]
|
78
|
-
release_module_start(path, version, user, module_name, options[:ignore])
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
m.desc 'finish release module project'
|
83
|
-
m.switch [:s,:spec]
|
84
|
-
m.command :finish do |finish|
|
85
|
-
finish.action do |global_options, options, args|
|
86
|
-
path = File.expand_path(global_options[:path])
|
87
|
-
version = global_options[:ver]
|
88
|
-
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
89
|
-
LeanCloudLogger.instance.set_command("release/module/finish")
|
56
|
+
m.action do |global_options, options, args|
|
57
|
+
path = File.expand_path(global_options[:path])
|
58
|
+
version = global_options[:ver]
|
59
|
+
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
|
60
|
+
LeanCloudLogger.instance.set_command("release/module")
|
90
61
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
end
|
62
|
+
help_now!('module name is required') if args.length == 0
|
63
|
+
raise Logger.error("release version is required") if version == nil
|
64
|
+
modules = args[(0...args.length)] if args.length > 0
|
65
|
+
release_module(path, version, user, modules, options[:spec])
|
96
66
|
end
|
97
67
|
end
|
98
68
|
end
|
@@ -8,84 +8,21 @@ require 'big_keeper/util/xcode_operator'
|
|
8
8
|
require 'big_keeper/model/operate_type'
|
9
9
|
|
10
10
|
module BigKeeper
|
11
|
-
def self.
|
12
|
-
|
13
|
-
|
14
|
-
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
15
|
-
modules = BigkeeperParser.module_names
|
16
|
-
|
17
|
-
#stash
|
18
|
-
StashService.new.stash_all(path, GitOperator.new.current_branch(path), user, modules)
|
19
|
-
|
20
|
-
# delete cache
|
21
|
-
CacheOperator.new(path).clean()
|
22
|
-
# cache Podfile
|
23
|
-
CacheOperator.new(path).save('Podfile')
|
24
|
-
|
25
|
-
# check
|
26
|
-
GitOperator.new.check_diff(path, "develop", "master")
|
27
|
-
|
28
|
-
#checkout release branch
|
29
|
-
Logger.highlight(%Q(Start to checkout Branch release/#{version}))
|
30
|
-
if GitOperator.new.current_branch(path) != "release/#{version}"
|
31
|
-
if GitOperator.new.has_branch(path, "release/#{version}")
|
32
|
-
GitOperator.new.checkout(path, "release/#{version}")
|
33
|
-
else
|
34
|
-
GitflowOperator.new.start(path, version, GitflowType::RELEASE)
|
35
|
-
GitOperator.new.push_to_remote(path, "release/#{version}")
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
Logger.highlight(%Q(Start to release/#{version}))
|
40
|
-
# step 2 replace_modules
|
41
|
-
PodfileOperator.new.replace_all_module_release(path,
|
42
|
-
user,
|
43
|
-
modules,
|
44
|
-
ModuleOperateType::RELEASE)
|
45
|
-
|
46
|
-
# step 3 change Info.plist value
|
47
|
-
InfoPlistOperator.new.change_version_build(path, version)
|
48
|
-
|
49
|
-
GitService.new.verify_push(path, "Change version to #{version}", "release/#{version}", 'Home')
|
50
|
-
DepService.dep_operator(path, user).install(modules, OperateType::RELEASE, true)
|
51
|
-
XcodeOperator.open_workspace(path)
|
11
|
+
def self.prerelease(path, version, user, modules)
|
12
|
+
DepService.dep_operator(path, user).release_start(path, version, user, modules)
|
52
13
|
end
|
53
14
|
|
54
|
-
def self.
|
15
|
+
def self.release(path, version, user, modules)
|
55
16
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
17
|
+
|
56
18
|
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
57
|
-
|
19
|
+
modules = BigkeeperParser.module_names
|
58
20
|
|
59
21
|
if GitOperator.new.has_branch(path, "release/#{version}")
|
60
|
-
|
61
|
-
GitOperator.new.checkout(path, "release/#{version}")
|
62
|
-
end
|
63
|
-
|
64
|
-
GitService.new.verify_push(path, "finish release branch", "release/#{version}", 'Home')
|
65
|
-
|
66
|
-
# master
|
67
|
-
GitOperator.new.checkout(path, "master")
|
68
|
-
GitOperator.new.merge(path, "release/#{version}")
|
69
|
-
GitService.new.verify_push(path, "release V#{version}", "master", 'Home')
|
70
|
-
|
71
|
-
GitOperator.new.tag(path, version)
|
72
|
-
|
73
|
-
# release branch
|
74
|
-
GitOperator.new.checkout(path, "release/#{version}")
|
75
|
-
CacheOperator.new(path).load('Podfile')
|
76
|
-
CacheOperator.new(path).clean()
|
77
|
-
GitOperator.new.commit(path, "reset #{version} Podfile")
|
78
|
-
GitService.new.verify_push(path, "reset #{version} Podfile", "release/#{version}", 'Home')
|
79
|
-
|
80
|
-
# develop
|
81
|
-
GitOperator.new.checkout(path, "develop")
|
82
|
-
GitOperator.new.merge(path, "release/#{version}")
|
83
|
-
GitService.new.verify_push(path, "merge release/#{version} to develop", "develop", 'Home')
|
84
|
-
GitOperator.new.check_diff(path, "develop", "master")
|
85
|
-
|
86
|
-
Logger.highlight("Finish release home for #{version}")
|
22
|
+
DepService.dep_operator(path, user).release_finish(path, version, user, modules)
|
87
23
|
else
|
88
|
-
|
24
|
+
DepService.dep_operator(path, user).release_start(path, version, user, modules)
|
25
|
+
DepService.dep_operator(path, user).release_finish(path, version, user, modules)
|
89
26
|
end
|
90
27
|
end
|
91
28
|
|
@@ -8,9 +8,15 @@ 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
|
+
|
11
17
|
def self.release_module_start(path, version, user, module_name, ignore)
|
18
|
+
p module_name
|
12
19
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
13
|
-
|
14
20
|
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
15
21
|
module_path = BigkeeperParser.module_full_path(path, user, module_name)
|
16
22
|
|
@@ -28,37 +34,44 @@ module BigKeeper
|
|
28
34
|
Logger.highlight(%Q(Start checkout #{module_name} to Branch develop))
|
29
35
|
GitService.new.verify_checkout_pull(module_path, "develop")
|
30
36
|
|
31
|
-
Logger.highlight(%Q(#{module_name}
|
37
|
+
Logger.highlight(%Q(#{module_name} prerelease finish))
|
32
38
|
end
|
33
39
|
|
34
|
-
|
35
|
-
def self.release_module_finish(path, version, user, module_name, spec)
|
40
|
+
def self.release_module(path, version, user, modules, spec)
|
36
41
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
37
42
|
|
38
|
-
|
39
|
-
|
43
|
+
if !CommandLineUtil.double_check("modules #{modules} will publish version #{version}, are you sure?")
|
44
|
+
Logger.error('module prerelease interrupt')
|
45
|
+
end
|
46
|
+
|
47
|
+
for module_name in modules
|
48
|
+
release_module_start(path, version, user, module_name, true)
|
49
|
+
|
50
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
51
|
+
module_path = BigkeeperParser.module_full_path(path, user, module_name)
|
40
52
|
|
41
|
-
|
42
|
-
|
53
|
+
# check commit
|
54
|
+
Logger.error("current branch has unpush files") if GitOperator.new.has_changes(module_path)
|
43
55
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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
|
48
60
|
|
49
|
-
|
50
|
-
|
51
|
-
|
61
|
+
# check out master
|
62
|
+
Logger.highlight("'#{module_name}' checkout branch to master...")
|
63
|
+
GitService.new.verify_checkout_pull(module_path, "master")
|
52
64
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
65
|
+
Logger.highlight(%Q(Merge develop to master))
|
66
|
+
# merge develop to master
|
67
|
+
GitOperator.new.merge(module_path, "develop")
|
68
|
+
GitOperator.new.push_to_remote(module_path, "master")
|
57
69
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
70
|
+
GitOperator.new.tag(module_path, version)
|
71
|
+
# pod repo push
|
72
|
+
if spec == true
|
73
|
+
PodOperator.pod_repo_push(module_path, module_name, BigkeeperParser.source_spec_path(module_name), version)
|
74
|
+
end
|
62
75
|
end
|
63
76
|
end
|
64
77
|
|
@@ -1,69 +1,4 @@
|
|
1
1
|
module BigKeeper
|
2
|
-
def self.release_start(path, version, user, modules)
|
3
|
-
BigkeeperParser.parse("#{path}/Bigkeeper")
|
4
|
-
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
5
|
-
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
6
|
-
|
7
|
-
if modules.nil? || modules.empty?
|
8
|
-
Logger.error('no module need to release')
|
9
|
-
end
|
10
|
-
|
11
|
-
if !CommandLineUtil.double_check("module #{modules} will changed version to #{version}-SNAPSHOT, are you sure?")
|
12
|
-
Logger.error('release start interrupt')
|
13
|
-
end
|
14
|
-
|
15
|
-
#stash home
|
16
|
-
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
17
|
-
# delete cache
|
18
|
-
CacheOperator.new(path).clean()
|
19
|
-
# checkout develop
|
20
|
-
GitService.new.verify_checkout_pull(path, 'develop')
|
21
|
-
|
22
|
-
modules.each do |module_name|
|
23
|
-
Logger.highlight("release start module #{module_name}")
|
24
|
-
ModuleService.new.release_start(path, user, modules, module_name, version)
|
25
|
-
end
|
26
|
-
|
27
|
-
#release home
|
28
|
-
DepService.dep_operator(path, user).release_home_start(modules, version)
|
29
|
-
|
30
|
-
# Push home changes to remote
|
31
|
-
Logger.highlight("Push branch 'develop' for 'Home'...")
|
32
|
-
GitService.new.verify_push(
|
33
|
-
path,
|
34
|
-
"release start for #{version}",
|
35
|
-
'develop',
|
36
|
-
'Home')
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.release_finish(path, version, user, modules)
|
40
|
-
BigkeeperParser.parse("#{path}/Bigkeeper")
|
41
|
-
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
42
|
-
|
43
|
-
#stash home
|
44
|
-
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
45
|
-
# delete cache
|
46
|
-
CacheOperator.new(path).clean()
|
47
|
-
# checkout develop
|
48
|
-
GitService.new.verify_checkout_pull(path, 'develop')
|
49
|
-
|
50
|
-
modules.each do |module_name|
|
51
|
-
Logger.highlight("release start module #{module_name}")
|
52
|
-
ModuleService.new.release_finish(path, user, modules, module_name, version)
|
53
|
-
end
|
54
|
-
|
55
|
-
#release home
|
56
|
-
DepService.dep_operator(path, user).release_home_finish(modules, version)
|
57
|
-
|
58
|
-
# Push home changes to remote
|
59
|
-
Logger.highlight("Push branch 'develop' for 'Home'...")
|
60
|
-
GitService.new.verify_push(
|
61
|
-
path,
|
62
|
-
"release finish for #{version}",
|
63
|
-
'develop',
|
64
|
-
'Home')
|
65
|
-
end
|
66
|
-
|
67
2
|
def self.release_check_changed_modules(path, user)
|
68
3
|
changed_modules = []
|
69
4
|
BigkeeperParser.parse("#{path}/Bigkeeper")
|
@@ -75,4 +10,5 @@ module BigKeeper
|
|
75
10
|
end
|
76
11
|
changed_modules
|
77
12
|
end
|
13
|
+
|
78
14
|
end
|
@@ -70,5 +70,87 @@ module BigKeeper
|
|
70
70
|
|
71
71
|
def open
|
72
72
|
end
|
73
|
+
|
74
|
+
def release_start(path, version, user, modules)
|
75
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
76
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
77
|
+
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
78
|
+
|
79
|
+
if modules.nil? || modules.empty?
|
80
|
+
Logger.error('no module need to release')
|
81
|
+
end
|
82
|
+
|
83
|
+
if !CommandLineUtil.double_check("module #{modules} will changed version to #{version}-SNAPSHOT, are you sure?")
|
84
|
+
Logger.error('release start interrupt')
|
85
|
+
end
|
86
|
+
|
87
|
+
#stash home
|
88
|
+
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
89
|
+
# delete cache
|
90
|
+
CacheOperator.new(path).clean()
|
91
|
+
# checkout develop
|
92
|
+
GitService.new.verify_checkout_pull(path, 'develop')
|
93
|
+
|
94
|
+
modules.each do |module_name|
|
95
|
+
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
|
+
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
100
|
+
Logger.highlight("Push branch 'develop' for #{module_name}...")
|
101
|
+
GitService.new.verify_push(
|
102
|
+
module_full_path,
|
103
|
+
"release start for #{version}",
|
104
|
+
'develop',
|
105
|
+
"#{module_name}")
|
106
|
+
end
|
107
|
+
|
108
|
+
#release home
|
109
|
+
DepService.dep_operator(path, user).release_home_start(modules, version)
|
110
|
+
|
111
|
+
# Push home changes to remote
|
112
|
+
Logger.highlight("Push branch 'develop' for 'Home'...")
|
113
|
+
GitService.new.verify_push(
|
114
|
+
path,
|
115
|
+
"release start for #{version}",
|
116
|
+
'develop',
|
117
|
+
'Home')
|
118
|
+
end
|
119
|
+
|
120
|
+
def self.release_finish(path, version, user, modules)
|
121
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
122
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
123
|
+
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
124
|
+
|
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
|
+
#stash home
|
132
|
+
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
133
|
+
# delete cache
|
134
|
+
CacheOperator.new(path).clean()
|
135
|
+
# checkout develop
|
136
|
+
GitService.new.verify_checkout_pull(path, 'develop')
|
137
|
+
|
138
|
+
modules.each do |module_name|
|
139
|
+
Logger.highlight("release start module #{module_name}")
|
140
|
+
ModuleService.new.release_finish(path, user, modules, module_name, version)
|
141
|
+
end
|
142
|
+
|
143
|
+
#release home
|
144
|
+
DepService.dep_operator(path, user).release_home_finish(modules, version)
|
145
|
+
|
146
|
+
# Push home changes to remote
|
147
|
+
Logger.highlight("Push branch 'develop' for 'Home'...")
|
148
|
+
GitService.new.verify_push(
|
149
|
+
path,
|
150
|
+
"release finish for #{version}",
|
151
|
+
'develop',
|
152
|
+
'Home')
|
153
|
+
end
|
154
|
+
|
73
155
|
end
|
74
156
|
end
|
@@ -75,6 +75,10 @@ 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}'"
|
78
82
|
else
|
79
83
|
line
|
80
84
|
end
|
@@ -86,7 +90,7 @@ module BigKeeper
|
|
86
90
|
|
87
91
|
File.open("#{@path}/.bigkeeper/Podfile", 'r', :encoding => 'UTF-8') do |file|
|
88
92
|
file.each_line do |line|
|
89
|
-
if line =~ /(\s*)pod(\s*)('|")#{module_name}('|")([\s\S]*)/
|
93
|
+
if line =~ /(\s*)pod(\s*)('|")#{module_name}((\/[_a-zA-Z0-9]+)?)('|")([\s\S]*)/
|
90
94
|
origin_config = line
|
91
95
|
break
|
92
96
|
end
|
@@ -102,7 +106,7 @@ module BigKeeper
|
|
102
106
|
tags_spec_list = Array.new
|
103
107
|
tags_module_list = Array.new
|
104
108
|
|
105
|
-
IO.popen("find /Users/#{username}/.cocoapods/repos -type d -name #{module_name}") do |io|
|
109
|
+
IO.popen("find /Users/#{username}/.cocoapods/repos/#{BigkeeperParser.source_spec_name(module_name)} -type d -name #{module_name}") do |io|
|
106
110
|
io.each do |line|
|
107
111
|
tags_repos_pwd.push(line) if line.include? "#{module_name}"
|
108
112
|
end
|
@@ -125,6 +129,106 @@ module BigKeeper
|
|
125
129
|
end
|
126
130
|
end
|
127
131
|
|
132
|
+
def release_start(path, version, user, modules)
|
133
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
134
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
135
|
+
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
136
|
+
|
137
|
+
if modules.nil? || modules.empty?
|
138
|
+
Logger.default('no module need to release')
|
139
|
+
end
|
140
|
+
|
141
|
+
#stash home
|
142
|
+
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
143
|
+
# delete cache
|
144
|
+
CacheOperator.new(path).clean()
|
145
|
+
# cache Podfile
|
146
|
+
CacheOperator.new(path).save('Podfile')
|
147
|
+
# checkout develop
|
148
|
+
GitService.new.verify_checkout_pull(path, 'develop')
|
149
|
+
# check
|
150
|
+
GitOperator.new.check_diff(path, "develop", "master")
|
151
|
+
|
152
|
+
#checkout release branch
|
153
|
+
Logger.highlight(%Q(Start to checkout Branch release/#{version}))
|
154
|
+
|
155
|
+
GitService.new.verify_checkout(path, "release/#{version}")
|
156
|
+
|
157
|
+
raise Logger.error("Chechout release/#{version} failed.") unless GitOperator.new.current_branch(path) == "release/#{version}"
|
158
|
+
|
159
|
+
Logger.highlight(%Q(Finish to release/#{version} for home project))
|
160
|
+
|
161
|
+
modules.each do |module_name|
|
162
|
+
Logger.highlight("release checkout release/#{version} for #{module_name}")
|
163
|
+
module_full_path = BigkeeperParser.module_full_path(path, user, module_name)
|
164
|
+
ModuleService.new.release_start(path, user, modules, module_name, version)
|
165
|
+
|
166
|
+
if GitOperator.new.has_branch(module_full_path, "release/#{version}")
|
167
|
+
GitOperator.new.checkout(module_full_path, "release/#{version}")
|
168
|
+
else
|
169
|
+
GitflowOperator.new.start(path, version, GitflowType::RELEASE)
|
170
|
+
GitOperator.new.push_to_remote(path, "release/#{version}")
|
171
|
+
|
172
|
+
Logger.highlight("Push branch release/'#{version}' for #{module_name}...")
|
173
|
+
GitOperator.new.push_to_remote(module_full_path, "release/#{version}")
|
174
|
+
end
|
175
|
+
|
176
|
+
DepService.dep_operator(path, user).update_module_config(
|
177
|
+
module_name,
|
178
|
+
ModuleOperateType::RELEASE_START)
|
179
|
+
end
|
180
|
+
|
181
|
+
# step 3 change Info.plist value
|
182
|
+
InfoPlistOperator.new.change_version_build(path, version)
|
183
|
+
|
184
|
+
GitService.new.verify_push(path, "Change version to #{version}", "release/#{version}", 'Home')
|
185
|
+
# DepService.dep_operator(path, user).install(modules, OperateType::RELEASE, true)
|
186
|
+
XcodeOperator.open_workspace(path)
|
187
|
+
end
|
188
|
+
|
189
|
+
def release_module_start(modules, module_name, version)
|
190
|
+
module_full_path = BigkeeperParser.module_full_path(@path, @user, module_name)
|
191
|
+
GitService.new.verify_checkout(module_full_path, "release/#{version}")
|
192
|
+
end
|
193
|
+
|
194
|
+
def release_finish(path, version, user, modules)
|
195
|
+
BigkeeperParser.parse("#{path}/Bigkeeper")
|
196
|
+
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
197
|
+
modules = BigkeeperParser.module_names
|
198
|
+
|
199
|
+
if GitOperator.new.has_branch(path, "release/#{version}")
|
200
|
+
GitService.new.verify_checkout(path, "release/#{version}")
|
201
|
+
|
202
|
+
PodfileOperator.new.replace_all_module_release(path, user, modules, ModuleOperateType::RELEASE)
|
203
|
+
|
204
|
+
GitService.new.verify_push(path, "finish release branch", "release/#{version}", 'Home')
|
205
|
+
|
206
|
+
# master
|
207
|
+
GitOperator.new.checkout(path, "master")
|
208
|
+
GitOperator.new.merge(path, "release/#{version}")
|
209
|
+
GitService.new.verify_push(path, "release V#{version}", "master", 'Home')
|
210
|
+
|
211
|
+
GitOperator.new.tag(path, version)
|
212
|
+
|
213
|
+
# release branch
|
214
|
+
GitOperator.new.checkout(path, "release/#{version}")
|
215
|
+
CacheOperator.new(path).load('Podfile')
|
216
|
+
CacheOperator.new(path).clean()
|
217
|
+
GitOperator.new.commit(path, "reset #{version} Podfile")
|
218
|
+
GitService.new.verify_push(path, "reset #{version} Podfile", "release/#{version}", 'Home')
|
219
|
+
|
220
|
+
# develop
|
221
|
+
GitOperator.new.checkout(path, "develop")
|
222
|
+
GitOperator.new.merge(path, "release/#{version}")
|
223
|
+
GitService.new.verify_push(path, "merge release/#{version} to develop", "develop", 'Home')
|
224
|
+
GitOperator.new.check_diff(path, "develop", "master")
|
225
|
+
|
226
|
+
Logger.highlight("Finish release home for #{version}")
|
227
|
+
else
|
228
|
+
raise Logger.error("There is no release/#{version} branch, please use release home start first.")
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
128
232
|
private :generate_module_config, :origin_config_of_module, :find_lastest_tag
|
129
233
|
end
|
130
234
|
end
|
@@ -183,14 +183,6 @@ module BigKeeper
|
|
183
183
|
# checkout develop
|
184
184
|
GitService.new.verify_checkout_pull(module_full_path, 'develop')
|
185
185
|
DepService.dep_operator(path, user).release_module_start(modules, module_name, version)
|
186
|
-
|
187
|
-
# Push home changes to remote
|
188
|
-
Logger.highlight("Push branch 'develop' for #{module_name}...")
|
189
|
-
GitService.new.verify_push(
|
190
|
-
module_full_path,
|
191
|
-
"release start for #{version}",
|
192
|
-
'develop',
|
193
|
-
"#{module_name}")
|
194
186
|
end
|
195
187
|
|
196
188
|
def release_finish(path, user, modules, module_name, version)
|
@@ -183,6 +183,8 @@ module BigKeeper
|
|
183
183
|
end
|
184
184
|
|
185
185
|
def self.module_full_path(home_path, user_name, module_name)
|
186
|
+
Logger.error("Can't find a Pod named #{module_name} in current directory.") unless @@config[:modules].invert.has_value?(module_name)
|
187
|
+
|
186
188
|
if @@config[:users] \
|
187
189
|
&& @@config[:users][user_name] \
|
188
190
|
&& @@config[:users][user_name][:mods] \
|
@@ -206,7 +208,6 @@ module BigKeeper
|
|
206
208
|
&& @@config[:users][user_name][:mods][module_name][:path]
|
207
209
|
File.expand_path(@@config[:users][user_name][:mods][module_name][:path])
|
208
210
|
else
|
209
|
-
p @@config[:modules][module_name]
|
210
211
|
if @@config[:modules][module_name][:alias]
|
211
212
|
"#{home_modules_workspace}#{@@config[:modules][module_name][:alias]}"
|
212
213
|
else
|
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.13
|
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-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -259,6 +259,7 @@ files:
|
|
259
259
|
- lib/big_keeper/command/feature&hotfix/delete.rb
|
260
260
|
- lib/big_keeper/command/feature&hotfix/finish.rb
|
261
261
|
- lib/big_keeper/command/feature&hotfix/list.rb
|
262
|
+
- lib/big_keeper/command/feature&hotfix/module.rb
|
262
263
|
- lib/big_keeper/command/feature&hotfix/publish.rb
|
263
264
|
- lib/big_keeper/command/feature&hotfix/pull.rb
|
264
265
|
- lib/big_keeper/command/feature&hotfix/push.rb
|
@@ -272,7 +273,6 @@ files:
|
|
272
273
|
- lib/big_keeper/command/pod.rb
|
273
274
|
- lib/big_keeper/command/pod/podfile.rb
|
274
275
|
- lib/big_keeper/command/release.rb
|
275
|
-
- lib/big_keeper/command/release/finish.rb
|
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
|
@@ -347,7 +347,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
347
347
|
- !ruby/object:Gem::Version
|
348
348
|
version: '0'
|
349
349
|
requirements: []
|
350
|
-
|
350
|
+
rubyforge_project:
|
351
|
+
rubygems_version: 2.7.6
|
351
352
|
signing_key:
|
352
353
|
specification_version: 4
|
353
354
|
summary: Efficiency improvement for iOS&Android modular development.
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module BigKeeper
|
2
|
-
def self.release_finish(path, version, user, modules)
|
3
|
-
BigkeeperParser.parse("#{path}/Bigkeeper")
|
4
|
-
version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
|
5
|
-
modules = release_check_changed_modules(path, user) if (modules.nil? || modules.empty?)
|
6
|
-
|
7
|
-
if modules.nil? || modules.empty?
|
8
|
-
Logger.error('no module need to release')
|
9
|
-
end
|
10
|
-
if !CommandLineUtil.double_check("module #{modules} will changed version to #{version}, are you sure?")
|
11
|
-
Logger.error('release finish interrupt')
|
12
|
-
end
|
13
|
-
#stash home
|
14
|
-
StashService.new.stash(path, GitOperator.new.current_branch(path), 'home')
|
15
|
-
# delete cache
|
16
|
-
CacheOperator.new(path).clean()
|
17
|
-
# checkout develop
|
18
|
-
GitService.new.verify_checkout_pull(path, 'develop')
|
19
|
-
|
20
|
-
modules.each do |module_name|
|
21
|
-
Logger.highlight("release start module #{module_name}")
|
22
|
-
ModuleService.new.release_finish(path, user, modules, module_name, version)
|
23
|
-
end
|
24
|
-
|
25
|
-
#release home
|
26
|
-
DepService.dep_operator(path, user).release_home_finish(modules, version)
|
27
|
-
|
28
|
-
# Push home changes to remote
|
29
|
-
Logger.highlight("Push branch 'develop' for 'Home'...")
|
30
|
-
GitService.new.verify_push(
|
31
|
-
path,
|
32
|
-
"release finish for #{version}",
|
33
|
-
'develop',
|
34
|
-
'Home')
|
35
|
-
end
|
36
|
-
end
|