Class: Moonshot::BuildMechanism::GithubRelease

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
DoctorHelper, ResourcesHelper, Shell
Defined in:
lib/moonshot/build_mechanism/github_release.rb

Overview

A build mechanism that creates a tag and GitHub release.

Instance Attribute Summary

Attributes included from ResourcesHelper

#resources

Instance Method Summary collapse

Methods included from Shell

sh_out, #sh_step, #shell

Constructor Details

#initialize(build_mechanism) ⇒ GithubRelease

Returns a new instance of GithubRelease.

Parameters:

  • build_mechanism

    Delegates building after GitHub release is created.



20
21
22
# File 'lib/moonshot/build_mechanism/github_release.rb', line 20

def initialize(build_mechanism)
  @build_mechanism = build_mechanism
end

Instance Method Details

#build_hook(version) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/moonshot/build_mechanism/github_release.rb', line 45

def build_hook(version)
  assert_state(version)
  git_tag(version, @sha, @changes)
  git_push_tag('upstream', version)
  hub_create_release(@semver, @sha, @changes)
  ilog.msg("#{releases_url}/tag/#{version}")
  @build_mechanism.build_hook(version)
end

#doctor_hookObject



24
25
26
27
# File 'lib/moonshot/build_mechanism/github_release.rb', line 24

def doctor_hook
  super
  @build_mechanism.doctor_hook
end

#post_build_hook(version) ⇒ Object



54
55
56
57
# File 'lib/moonshot/build_mechanism/github_release.rb', line 54

def post_build_hook(version)
  assert_state(version)
  @build_mechanism.post_build_hook(version)
end

#pre_build_hook(version) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/moonshot/build_mechanism/github_release.rb', line 34

def pre_build_hook(version)
  @semver = ::Semantic::Version.new(version)
  @target_version = [@semver.major, @semver.minor, @semver.patch].join('.')
  sh_step('git fetch --tags upstream')
  @sha = `git rev-parse HEAD`.chomp
  validate_commit
  @changes = validate_changelog(@target_version)
  confirm_or_fail(@semver)
  @build_mechanism.pre_build_hook(version)
end

#resources=(r) ⇒ Object



29
30
31
32
# File 'lib/moonshot/build_mechanism/github_release.rb', line 29

def resources=(r)
  super
  @build_mechanism.resources = r
end