/
release.rake
99 lines (88 loc) · 3.19 KB
/
release.rake
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
require 'rubygems'
require 'rake/testtask'
require 'rake/rdoctask'
require 'rake/gempackagetask'
require 'radiant'
PKG_NAME = 'radiant'
PKG_VERSION = Radiant::Version.to_s
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
RUBY_FORGE_PROJECT = PKG_NAME
RUBY_FORGE_USER = ENV['RUBY_FORGE_USER'] || 'jlong'
RELEASE_NAME = PKG_VERSION
RUBY_FORGE_GROUPID = '1337'
RUBY_FORGE_PACKAGEID = '1638'
RDOC_TITLE = "Radiant -- Publishing for Small Teams"
RDOC_EXTRAS = ["README", "CONTRIBUTORS", "CHANGELOG", "INSTALL", "LICENSE"]
namespace 'radiant' do
spec = Gem::Specification.new do |s|
s.name = PKG_NAME
s.version = PKG_VERSION
s.author = "Radiant CMS dev team"
s.email = "radiant@radiantcms.org"
s.summary = 'A no-fluff content management system designed for small teams.'
s.description = "Radiant is a simple and powerful publishing system designed for small teams.\nIt is built with Rails and is similar to Textpattern or MovableType, but is\na general purpose content managment system--not merely a blogging engine."
s.homepage = 'http://radiantcms.org'
s.rubyforge_project = RUBY_FORGE_PROJECT
s.platform = Gem::Platform::RUBY
s.bindir = 'bin'
s.executables = (Dir['bin/*'] + Dir['scripts/*']).map { |file| File.basename(file) }
s.add_dependency 'rake', '>= 0.8.3'
s.add_dependency 'rspec', '>= 1.1.11'
s.add_dependency 'rspec-rails', '>= 1.1.11'
# s.autorequire = 'radiant'
s.has_rdoc = true
s.rdoc_options << '--title' << RDOC_TITLE << '--line-numbers' << '--main' << 'README'
rdoc_excludes = Dir["**"].reject { |f| !File.directory? f }
rdoc_excludes.each do |e|
s.rdoc_options << '--exclude' << e
end
s.extra_rdoc_files = RDOC_EXTRAS
files = FileList['**/*']
files.exclude '**/._*'
files.exclude '**/*.rej'
files.exclude '.git*'
files.exclude /^cache/
files.exclude 'config/database.yml'
files.exclude 'config/locomotive.yml'
files.exclude 'config/lighttpd.conf'
files.exclude 'config/mongrel_mimes.yml'
files.exclude 'db/*.db'
files.exclude /^doc/
files.exclude 'log/*.log'
files.exclude 'log/*.pid'
files.include 'log/.keep'
files.exclude /^pkg/
files.include 'public/.htaccess'
files.exclude /\btmp\b/
files.exclude 'radiant.gemspec'
s.files = files.to_a
end
Rake::GemPackageTask.new(spec) do |pkg|
pkg.need_zip = true
pkg.need_tar = true
end
task :gemspec do
File.open('radiant.gemspec', 'w') {|f| f.write spec.to_ruby }
end
namespace :gem do
desc "Uninstall Gem"
task :uninstall do
sh "gem uninstall #{PKG_NAME}" rescue nil
end
desc "Build and install Gem from source"
task :install => [:package, :uninstall] do
chdir("#{RADIANT_ROOT}/pkg") do
latest = Dir["#{PKG_NAME}-*.gem"].last
sh "gem install #{latest}"
end
end
end
desc "Publish the release files to RubyForge."
task :release => [:gem, :package] do
files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
system %{rubyforge login --username #{RUBY_FORGE_USER}}
files.each do |file|
system %{rubyforge add_release #{RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} "#{RELEASE_NAME}" #{file}}
end
end
end