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/lint.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, Lint, Versioning

Instance Method Summary collapse

Instance Method Details

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

Yields:

  • (config)


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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/semmy/tasks.rb', line 16

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

  namespace 'semmy' do
    Lint.new(config)
    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' => 'semmy:lint' do
    if Scm.on_master? || Scm.on_major_version_stable?(config.stable_branch_name)
      Rake.application['release:prepare:master'].invoke
    elsif Scm.on_minor_version_stable?(config.stable_branch_name)
      Rake.application['release:prepare:stable'].invoke
    end
  end

  task 'release:after:master', [:remote] => [
    'semmy:branches:create_stable',
    'semmy:versioning:bump_minor',
    'semmy:changelog:update_for_minor',
    'semmy:commit:bump',
    'semmy:branches:push_master',
    'semmy:branches:push_previous_stable'
  ]

  desc 'Prepare repository for development of next verion'
  task 'release:after', [:remote] do |_, args|
    if Scm.on_master? || Scm.on_major_version_stable?(config.stable_branch_name)
      Rake.application['release:after:master'].invoke(args[:remote])
    end
  end

  task 'release', [:remote] do |_, args|
    Rake.application['release:after'].invoke(args[:remote])
  end

  task 'bump:patch' => [
    'semmy:versioning:bump_patch_level',
    'semmy:changelog:insert_unreleased_section'
  ]

  task 'bump:major' => [
    'semmy:changelog:replace_minor_stable_branch_with_major_stable_branch',
    'semmy:versioning:bump_major'
  ]
end