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