bigkeeper 0.9.12 → 0.9.13
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/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
|