class RollbackUpgrade
rollback flow: check rollback command avoid replacing backup branch commit diff on backup vs current at least one commit should be version upgrade create revert commits on commit diff tag commit with nuget version if it publishes nuget tag commit with timestamp if it is a service replace backup branch
end¶ ↑
Constants
- DATE_FORMAT
Public Class Methods
new(repo_url, remote, current_branch, rollback_branch, metadata)
click to toggle source
# File lib/rollback.rb, line 23 def initialize repo_url, remote, current_branch, rollback_branch, metadata @repo_url = repo_url @remote = remote @current_branch = current_branch @rollback_branch = rollback_branch @metadata = metadata end
Public Instance Methods
Do()
click to toggle source
# File lib/rollback.rb, line 45 def Do commit_hashes = GithubApi.BranchCommitDiff(@rollback_branch, @current_branch) if commit_hashes.length == 0 puts `No difference between branches #{current_branch} and #{rollback_branch}, aborting rollback.` return false end # check hashes for version upgrade commit message if !commit_hashes.any?{ |c_hash| GithubApi.ShowCommitInfoLocal(c_hash).include? Upgrade::VERSION_UPGRADE_COMMIT } puts `No version upgrade commit detected to roll back, aborting rollback.` return false end GithubApi.RevertLocal(@current_branch, commit_hashes) puts `@<--- Rollback branch revert completed. @<---` return true end
create_rollback_tag()
click to toggle source
# File lib/rollback.rb, line 31 def create_rollback_tag versioning = SemverVersioning.new semver_file = @config_map.metadata.semver.file if @config_map.metadata.should_publish_nuget && semver_file != nil && semver_file != GlobalConstants::EMPTY semver_file.capitalize ver_tag = versioning.get_current_version @config_map.metadata.semver.location, semver_file return "rollback-#{ver_tag}" else utc_now = DateTime.now.utc date_tag = utc_now.strftime(DATE_FORMAT) return "rollback-#{date_tag}" end end