Skip to content

Commit

Permalink
Reorganized the rake tasks to cater for random file load order
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinrutherford committed Jun 19, 2009
1 parent 2b43377 commit a8c3b0c
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 78 deletions.
24 changes: 0 additions & 24 deletions tasks/build.rake

This file was deleted.

66 changes: 46 additions & 20 deletions tasks/deployment.rake
@@ -1,6 +1,6 @@
require 'rubygems'
require 'rake/gempackagetask'
require 'rake/rdoctask'
require 'rubyforge'
require 'yaml'
require 'reek'

Expand Down Expand Up @@ -116,26 +116,29 @@ file VERSION_FILE => [RELEASE_TIMESTAMP] do
abort "Update #{VERSION_FILE} before attempting to release"
end

namespace :release do

task :tag do
puts <<-EOS
1) git commit -a -m "Release #{Reek::VERSION}"
2) git tag -a "v#{Reek::VERSION}" -m "Release #{Reek::VERSION}"
3) git push
4) git push --tags
EOS
end

desc 'Minor release on github only'
task :minor => ['build:all', 'rubyforge:rdoc', 'release:tag'] do
RELEASE_TIMESTAMP.touch(::Reek::VERSION)
end

desc 'Major release (github+rubyforge) with news'
task :major => ['release:minor', 'rubyforge:gem', 'rubyforge:news'] do

begin
require 'rubyforge'

namespace :release do
task :tag do
puts <<-EOS
1) git commit -a -m "Release #{Reek::VERSION}"
2) git tag -a "v#{Reek::VERSION}" -m "Release #{Reek::VERSION}"
3) git push
4) git push --tags
EOS
end

desc 'Minor release on github only'
task :minor => ['build:all', 'rubyforge:rdoc', 'release:tag'] do
RELEASE_TIMESTAMP.touch(::Reek::VERSION)
end

desc 'Major release (github+rubyforge) with news'
task :major => ['release:minor', 'rubyforge:gem', 'rubyforge:news'] do
end
end
rescue Gem::LoadError
end

def pkg_files
Expand Down Expand Up @@ -193,3 +196,26 @@ file MANIFEST_CHECKED => $package_files do
abort 'Check the manifest and try again'
end
end

namespace :build do
Rake::GemPackageTask.new($gemspec) do |task|
task.package_dir = PKG_DIR
task.need_tar = true
task.need_zip = false
end

task :gem => [MANIFEST_CHECKED, 'rspec:all']

Rake::RDocTask.new do |rd|
rd.main = 'README.txt'
rd.rdoc_dir = RDOC_DIR
files = $gemspec.files.grep(/^(lib|bin|ext)|txt|rdoc$/)
files -= [GEM_MANIFEST]
rd.rdoc_files.push(*files)
title = "#{PROJECT_NAME}-#{::Reek::VERSION} Documentation"
rd.options << "-t #{title}"
end

task :rdoc => [RDOC_DIR, MANIFEST_CHECKED]
task :all => ['build:package', 'build:rdoc']
end
13 changes: 8 additions & 5 deletions tasks/reek.rake
@@ -1,7 +1,10 @@
require 'reek/rake_task'
begin
require 'reek/rake_task'

Reek::RakeTask.new do |t|
t.fail_on_error = true
t.verbose = false
# t.reek_opts = '-f "Smell: %s: %c %w"'
Reek::RakeTask.new do |t|
t.fail_on_error = true
t.verbose = false
# t.reek_opts = '-f "Smell: %s: %c %w"'
end
rescue Gem::LoadError
end
62 changes: 33 additions & 29 deletions tasks/rubyforge.rake
@@ -1,5 +1,4 @@
require 'yaml'
require 'rubyforge'

REMOTE_PROJECT_DIR = "/var/www/gforge-projects/#{PROJECT_NAME}/"

Expand All @@ -12,36 +11,41 @@ def rsync(local, remote)
sh %{rsync -av --delete --ignore-errors #{local}/ #{user_at_host}:#{remote}}
end

namespace :rubyforge do
desc 'Upload website files to rubyforge'
task :website do
rsync('website', REMOTE_PROJECT_DIR)
end
begin
require 'rubyforge'

desc 'Upload the gem to rubyforge'
task :gem => ['build:package'] do |t|
pkg = "#{PKG_DIR}/#{PROJECT_NAME}-#{::Reek::VERSION}"
rf = RubyForge.new.configure
rf.login
c = rf.userconfig
proj = Description.new
c["release_notes"] = proj.description
c["release_changes"] = proj.changes
c["preformatted"] = true
files = ["#{pkg}.tgz", "#{pkg}.gem"]
rf.add_release(PROJECT_NAME, PROJECT_NAME, ::Reek::VERSION, *files)
end
namespace :rubyforge do
desc 'Upload website files to rubyforge'
task :website do
rsync('website', REMOTE_PROJECT_DIR)
end

desc 'Upload the rdoc to rubyforge'
task :rdoc => ['build:rdoc'] do
rsync(RDOC_DIR, "#{REMOTE_PROJECT_DIR}/rdoc")
end
desc 'Upload the gem to rubyforge'
task :gem => ['build:package'] do |t|
pkg = "#{PKG_DIR}/#{PROJECT_NAME}-#{::Reek::VERSION}"
rf = RubyForge.new.configure
rf.login
c = rf.userconfig
proj = Description.new
c["release_notes"] = proj.description
c["release_changes"] = proj.changes
c["preformatted"] = true
files = ["#{pkg}.tgz", "#{pkg}.gem"]
rf.add_release(PROJECT_NAME, PROJECT_NAME, ::Reek::VERSION, *files)
end

desc 'Upload the rdoc to rubyforge'
task :rdoc => ['build:rdoc'] do
rsync(RDOC_DIR, "#{REMOTE_PROJECT_DIR}/rdoc")
end

desc 'Post news announcement to rubyforge'
task :news do
proj = Description.new
rf = RubyForge.new.configure
rf.login
rf.post_news(PROJECT_NAME, proj.subject, proj.news)
desc 'Post news announcement to rubyforge'
task :news do
proj = Description.new
rf = RubyForge.new.configure
rf.login
rf.post_news(PROJECT_NAME, proj.subject, proj.news)
end
end
rescue Gem::LoadError
end

0 comments on commit a8c3b0c

Please sign in to comment.