File: release.rake

package info (click to toggle)
libinnate-ruby 2010.07-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 812 kB
  • ctags: 621
  • sloc: ruby: 4,242; makefile: 2
file content (65 lines) | stat: -rw-r--r-- 1,864 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
namespace :release do
  task :prepare => [:reversion, :authors, :gemspec]
  task :all => ['release:github', 'release:rubyforge', 'release:gemcutter']

  desc 'Release on github'
  task :github => :prepare do
    name, version = GEMSPEC.name, GEMSPEC.version

    sh('git', 'add',
       'MANIFEST', 'CHANGELOG', 'AUTHORS',
       "#{name}.gemspec",
       "lib/#{name}/version.rb")

    puts <<-INSTRUCTIONS
================================================================================

I added the relevant files, you can commit them, tag the commit, and push:

git commit -m 'Version #{version}'
git tag -a -m '#{version}' '#{version}'
git push

================================================================================
    INSTRUCTIONS
  end

  desc 'Release on rubyforge'
  task :rubyforge => ['release:prepare', :package] do
    name, version = GEMSPEC.name, GEMSPEC.version

    pkgs = Dir["pkg/#{name}-#{version}.{tgz,zip}"].map{|file|
      "rubyforge add_file #{name} #{name} '#{version}' '#{file}'"
    }

    puts <<-INSTRUCTIONS
================================================================================

To publish to rubyforge do following:

rubyforge login
rubyforge add_release #{name} #{name} '#{version}' pkg/#{name}-#{version}.gem

To publish the archives for distro packagers:

#{pkgs.join "\n"}

================================================================================
    INSTRUCTIONS
  end

  desc 'Release on gemcutter'
  task :gemcutter => ['release:prepare', :package] do
    name, version = GEMSPEC.name, GEMSPEC.version

    puts <<-INSTRUCTIONS
================================================================================

To publish to gemcutter do following:

gem push pkg/#{name}-#{version}.gem

================================================================================
    INSTRUCTIONS
  end
end