Module: Semmy::Tasks

Extended by:
Tasks
Includes:
Rake::DSL
Included in:
Tasks
Defined in:
lib/semmy/tasks.rb,
lib/semmy/tasks/base.rb,
lib/semmy/tasks/docs.rb,
lib/semmy/tasks/commit.rb,
lib/semmy/tasks/branches.rb,
lib/semmy/tasks/versioning.rb,
lib/semmy/tasks/changelog_sections.rb

Defined Under Namespace

Classes: Base, Branches, ChangelogSections, Commit, Docs, Versioning

Instance Method Summary collapse

Instance Method Details

#install {|config| ... } ⇒ Object

Yields:

  • (config)


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/semmy/tasks.rb', line 15

def install
  config = Configuration.new
  yield config if block_given?

  namespace 'semmy' do
    Versioning.new(config)
    Docs.new(config)
    ChangelogSections.new(config)
    Commit.new(config)
    Branches.new(config)
  end

  desc 'Prepare minor or major release'
  task 'release:prepare:master' => [
    'semmy:versioning:remove_development_version_suffix',
    'semmy:docs:rewrite_since_tags',
    'semmy:changelog:close_section',
    'semmy:commit:prepare'
  ]

  desc 'Prepare patch level release'
  task 'release:prepare:stable' => [
    'semmy:changelog:close_section',
    'semmy:commit:prepare'
  ]

  desc 'Prepare release'
  task 'release:prepare' do
    if Scm.on_master?
      Rake.application['release:prepare:master'].invoke
    elsif Scm.on_stable?(config.stable_branch_name)
      Rake.application['release:prepare:stable'].invoke
    end
  end

  task 'release:after:master' => [
    'semmy:branches:create_stable',
    'semmy:versioning:bump_minor',
    'semmy:changelog:add_unreleased_section',
    'semmy:commit:bump'
  ]

  desc 'Prepare repository for development of next verion'
  task 'release:after' do
    if Scm.on_master?
      Rake.application['release:after:master'].invoke
    end
  end

  task 'release' do
    Rake.application['release:after'].invoke
  end
end