summaryrefslogtreecommitdiffstats
path: root/cloudmasterd/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'cloudmasterd/tasks')
-rw-r--r--cloudmasterd/tasks/deployment.rake34
-rw-r--r--cloudmasterd/tasks/environment.rake7
-rw-r--r--cloudmasterd/tasks/rspec.rake21
-rw-r--r--cloudmasterd/tasks/website.rake17
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]