diff options
Diffstat (limited to 'cloudmasterd/tasks')
| -rw-r--r-- | cloudmasterd/tasks/deployment.rake | 34 | ||||
| -rw-r--r-- | cloudmasterd/tasks/environment.rake | 7 | ||||
| -rw-r--r-- | cloudmasterd/tasks/rspec.rake | 21 | ||||
| -rw-r--r-- | cloudmasterd/tasks/website.rake | 17 |
4 files changed, 79 insertions, 0 deletions
diff --git a/cloudmasterd/tasks/deployment.rake b/cloudmasterd/tasks/deployment.rake new file mode 100644 index 0000000..2f43742 --- /dev/null +++ b/cloudmasterd/tasks/deployment.rake @@ -0,0 +1,34 @@ +desc 'Release the website and new gem version' +task :deploy => [:check_version, :website, :release] do + puts "Remember to create SVN tag:" + puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " + + "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} " + puts "Suggested comment:" + puts "Tagging release #{CHANGES}" +end + +desc 'Runs tasks website_generate and install_gem as a local deployment of the gem' +task :local_deploy => [:website_generate, :install_gem] + +task :check_version do + unless ENV['VERSION'] + puts 'Must pass a VERSION=x.y.z release version' + exit + end + unless ENV['VERSION'] == VERS + puts "Please update your version.rb to match the release version, currently #{VERS}" + exit + end +end + +desc 'Install the package as a gem, without generating documentation(ri/rdoc)' +task :install_gem_no_doc => [:clean, :package] do + sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri" +end + +namespace :manifest do + desc 'Recreate Manifest.txt to include ALL files' + task :refresh do + `rake check_manifest | patch -p0 > Manifest.txt` + end +end
\ No newline at end of file diff --git a/cloudmasterd/tasks/environment.rake b/cloudmasterd/tasks/environment.rake new file mode 100644 index 0000000..691ed3b --- /dev/null +++ b/cloudmasterd/tasks/environment.rake @@ -0,0 +1,7 @@ +task :ruby_env do + RUBY_APP = if RUBY_PLATFORM =~ /java/ + "jruby" + else + "ruby" + end unless defined? RUBY_APP +end diff --git a/cloudmasterd/tasks/rspec.rake b/cloudmasterd/tasks/rspec.rake new file mode 100644 index 0000000..2415fa4 --- /dev/null +++ b/cloudmasterd/tasks/rspec.rake @@ -0,0 +1,21 @@ +begin + require 'spec' +rescue LoadError + require 'rubygems' + require 'spec' +end +begin + require 'spec/rake/spectask' +rescue LoadError + puts <<-EOS +To use rspec for testing you must install rspec gem: + gem install rspec +EOS + exit(0) +end + +desc "Run the specs under spec/models" +Spec::Rake::SpecTask.new do |t| + t.spec_opts = ['--options', "spec/spec.opts"] + t.spec_files = FileList['spec/**/*_spec.rb'] +end diff --git a/cloudmasterd/tasks/website.rake b/cloudmasterd/tasks/website.rake new file mode 100644 index 0000000..93e03fa --- /dev/null +++ b/cloudmasterd/tasks/website.rake @@ -0,0 +1,17 @@ +desc 'Generate website files' +task :website_generate => :ruby_env do + (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt| + sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} } + end +end + +desc 'Upload website files to rubyforge' +task :website_upload do + host = "#{rubyforge_username}@rubyforge.org" + remote_dir = "/var/www/gforge-projects/#{PATH}/" + local_dir = 'website' + sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}} +end + +desc 'Generate and upload website files' +task :website => [:website_generate, :website_upload, :publish_docs] |
