Class: Moonshot::BuildMechanism::GithubRelease
- Inherits:
-
Object
- Object
- Moonshot::BuildMechanism::GithubRelease
- 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
Instance Method Summary collapse
- #build_hook(version) ⇒ Object
- #doctor_hook ⇒ Object
-
#initialize(build_mechanism) ⇒ GithubRelease
constructor
A new instance of GithubRelease.
- #post_build_hook(version) ⇒ Object
- #pre_build_hook(version) ⇒ Object
- #resources=(r) ⇒ Object
Methods included from Shell
Constructor Details
#initialize(build_mechanism) ⇒ GithubRelease
Returns a new instance of GithubRelease.
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_hook ⇒ Object
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 |