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
user_name() click to toggle source
# File lib/deliv/deploy/git.rb, line 32
def user_name
  `git config --get user.name`&.squish
end