module WildlandDevTools::Releases

Constants

VALID_REMOTES

Public Class Methods

create_release(verbose = false) click to toggle source
# File lib/wildland_dev_tools/releases.rb, line 9
def create_release(verbose = false)
  return false unless git_up_to_date!
  tag_name = "PRODUCTION-#{base_tag_name}"
  create_and_push_tag(tag_name, verbose)
end
create_release_candidate(verbose = false) click to toggle source
# File lib/wildland_dev_tools/releases.rb, line 15
def create_release_candidate(verbose = false)
  return false unless git_up_to_date!
  tag_name = "RC-#{base_tag_name}"
  create_and_push_tag(tag_name, verbose)
end

Protected Class Methods

base_tag_name() click to toggle source
# File lib/wildland_dev_tools/releases.rb, line 29
def base_tag_name
  DateTime.now.strftime("%y-%m-%d-%H-%M")
end
create_and_push_tag(tag_name, verbose = false) click to toggle source
# File lib/wildland_dev_tools/releases.rb, line 23
def create_and_push_tag(tag_name, verbose = false)
  puts "Creating tag #{tag_name}" if verbose
  system("OVERCOMMIT_DISABLE=1 git tag #{tag_name}")
  system("OVERCOMMIT_DISABLE=1 git push origin #{tag_name}")
end
git_up_to_date!() click to toggle source
# File lib/wildland_dev_tools/releases.rb, line 33
def git_up_to_date!
  local = `OVERCOMMIT_DISABLE=1 git rev-parse @`
  remote = `OVERCOMMIT_DISABLE=1 git rev-parse @{u}`
  base = `OVERCOMMIT_DISABLE=1 git merge-base @ @{u}`
  case
  when local == remote
    return true
  when local == base
    raise GitSyncException, 'Need to pull master from origin.'
  when remote == base
    raise GitSyncException, 'Need to push master to origin.'
  else
    raise GitSyncException, 'Your local master has diverged from origin.'
  end
end