class Deliv::Deploy::Git
Attributes
release_branch[RW]
release_remote[RW]
release_tag[RW]
source_branch[RW]
source_remote[RW]
Public Class Methods
new(environment)
click to toggle source
# File lib/deliv/deploy/git.rb, line 6 def initialize(environment) @environment = environment @source_remote = 'origin' @source_branch = current_branch @release_remote = 'upstream' @release_branch = "release-#{@environment}" @release_tag = "#{@release_branch}-#{Time.current.to_i}" end
Public Instance Methods
current_branch()
click to toggle source
# File lib/deliv/deploy/git.rb, line 28 def current_branch `git rev-parse --abbrev-ref HEAD`&.squish end
deploy()
click to toggle source
# File lib/deliv/deploy/git.rb, line 15 def deploy print_debug old_branch = current_branch `git commit --all --message='Saving before #{release_tag}'` `git push #{source_remote} #{source_branch}` `git fetch #{source_remote} #{source_branch}` `git checkout --quiet #{source_remote}/#{source_branch}` `git tag --message='#{user_name} pointed #{release_branch} at #{current_branch}' #{release_tag}` `git push --force --follow-tags #{release_remote} HEAD:#{release_branch}` `git checkout #{old_branch}` end
print_debug()
click to toggle source
# File lib/deliv/deploy/git.rb, line 36 def print_debug puts "User Name: #{user_name}".blue puts "Current Branc: #{current_branch}".blue puts "Source Remote: #{source_remote}".blue puts "Source Branch: #{source_branch}".blue puts "Release Remote: #{release_remote}".blue puts "Release Branch: #{release_branch}".blue end
user_name()
click to toggle source
# File lib/deliv/deploy/git.rb, line 32 def user_name `git config --get user.name`&.squish end