lib/big_keeper/command/release/module.rb in bigkeeper-0.9.14 vs lib/big_keeper/command/release/module.rb in bigkeeper-0.9.15
- old
+ new
@@ -6,73 +6,69 @@
require 'big_keeper/util/git_operator'
require 'big_keeper/util/logger'
require 'big_keeper/util/pod_operator'
module BigKeeper
- def self.prerelease_module(path, version, user, modules, ignore)
- for module_name in modules
- release_module_start(path, version, user, module_name, ignore)
- end
- end
-
- def self.release_module_start(path, version, user, module_name, ignore)
- p module_name
- BigkeeperParser.parse("#{path}/Bigkeeper")
- version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
- module_path = BigkeeperParser.module_full_path(path, user, module_name)
-
- # stash
- StashService.new.stash(module_path, GitOperator.new.current_branch(module_path), module_name)
-
- #check
- if ignore != true
- GitOperator.new.check_merge(module_path, "feature/#{version}")
- GitOperator.new.check_diff(module_path, "develop", "master")
- Logger.highlight(%Q(#{module_name} release check finish))
- end
-
- # checkout to develop branch
- Logger.highlight(%Q(Start checkout #{module_name} to Branch develop))
- GitService.new.verify_checkout_pull(module_path, "develop")
-
- Logger.highlight(%Q(#{module_name} prerelease finish))
- end
-
def self.release_module(path, version, user, modules, spec)
BigkeeperParser.parse("#{path}/Bigkeeper")
if !CommandLineUtil.double_check("modules #{modules} will publish version #{version}, are you sure?")
Logger.error('module prerelease interrupt')
end
- for module_name in modules
- release_module_start(path, version, user, module_name, true)
+ version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
- version = BigkeeperParser.version if version == 'Version in Bigkeeper file'
+ for module_name in modules
module_path = BigkeeperParser.module_full_path(path, user, module_name)
+ StashService.new.stash(module_path, GitOperator.new.current_branch(module_path), module_name)
+ GitService.new.verify_checkout_pull(module_path, "release/#{version}")
+ GitService.new.verify_checkout_pull(module_path, "develop")
+
+ has_diff = release_module_pre_check(module_path, module_name, version)
+
+ if has_diff
+ # merge release to develop
+ branch_name = GitOperator.new.current_branch(module_path)
+ if branch_name == "develop"
+ GitOperator.new.merge_no_ff(module_path, "release/#{version}")
+ GitOperator.new.push_to_remote(module_path, "develop")
+ else
+ Logger.error("current branch is not develop branch")
+ end
+ end
+
# check commit
Logger.error("current branch has unpush files") if GitOperator.new.has_changes(module_path)
- #修改 podspec 文件
- # TO DO: - advanced to use Regular Expression
- has_change = PodfileOperator.new.podspec_change(%Q(#{module_path}/#{module_name}.podspec), version, module_name)
- GitService.new.verify_push(module_path, "Change version number", "develop", "#{module_name}") if has_change == true
-
# check out master
Logger.highlight("'#{module_name}' checkout branch to master...")
GitService.new.verify_checkout_pull(module_path, "master")
- Logger.highlight(%Q(Merge develop to master))
- # merge develop to master
- GitOperator.new.merge(module_path, "develop")
+ # merge release to master
+ GitOperator.new.merge_no_ff(module_path, "release/#{version}")
+
+ Logger.highlight(%Q(Merge "release/#{version}" to master))
+
GitOperator.new.push_to_remote(module_path, "master")
+ #修改 podspec 文件
+ # TO DO: - advanced to use Regular Expression
+ # has_change = PodfileOperator.new.podspec_change(%Q(#{module_path}/#{module_name}.podspec), version, module_name)
+ # GitService.new.verify_push(module_path, "Change version number", "master", "#{module_name}") if has_change == true
+
GitOperator.new.tag(module_path, version)
# pod repo push
if spec == true
PodOperator.pod_repo_push(module_path, module_name, BigkeeperParser.source_spec_path(module_name), version)
end
end
+ end
+
+ def self.release_module_pre_check(module_path, module_name, version)
+ #check
+ #GitOperator.new.check_merge(module_path, "feature/#{version}")
+ Logger.highlight(%Q(#{module_name} release pre-check finish))
+ return GitOperator.new.check_diff(module_path, "develop", "release/#{version}")
end
end