From 36c0662f13b0f00fe0b75ba45f892a1c7c3218bf Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Sun, 2 Aug 2009 02:15:34 +1000 Subject: Simplified Rakefile and moved tasks to tasks/rake directorya --- tasks/rake/changlog.rake | 10 ++++++++++ tasks/rake/ci.rake | 22 ++++++++++++++++++++++ tasks/rake/dailybuild.rake | 9 +++++++++ tasks/rake/mail_patches.rake | 35 +++++++++++++++++++++++++++++++++++ tasks/rake/metrics.rake | 6 ++++++ tasks/rake/tracdocs.rake | 8 ++++++++ 6 files changed, 90 insertions(+) create mode 100644 tasks/rake/changlog.rake create mode 100644 tasks/rake/ci.rake create mode 100644 tasks/rake/dailybuild.rake create mode 100644 tasks/rake/mail_patches.rake create mode 100644 tasks/rake/metrics.rake create mode 100644 tasks/rake/tracdocs.rake (limited to 'tasks/rake') diff --git a/tasks/rake/changlog.rake b/tasks/rake/changlog.rake new file mode 100644 index 000000000..0427e41bd --- /dev/null +++ b/tasks/rake/changlog.rake @@ -0,0 +1,10 @@ +desc "Create a ChangeLog based on git commits." +task :changelog do + CHANGELOG_DIR = "#{Dir.pwd}" + mkdir(CHANGELOG_DIR) unless File.directory?(CHANGELOG_DIR) + change_body=`git log --pretty=format:'%aD%n%an <%ae>%n%s%n'` + File.open(File.join(CHANGELOG_DIR, "ChangeLog"), 'w') do |f| + f << change_body + end +end + diff --git a/tasks/rake/ci.rake b/tasks/rake/ci.rake new file mode 100644 index 000000000..21d547340 --- /dev/null +++ b/tasks/rake/ci.rake @@ -0,0 +1,22 @@ +desc "Prep CI RSpec tests" +task :ci_prep do + require 'rubygems' + begin + gem 'ci_reporter' + require 'ci/reporter/rake/rspec' + require 'ci/reporter/rake/test_unit' + ENV['CI_REPORTS'] = 'results' + rescue LoadError + puts 'Missing ci_reporter gem. You must have the ci_reporter gem installed to run the CI spec tests' + end +end + +desc "Run the CI RSpec tests" +task :ci_spec => [:ci_prep, 'ci:setup:rspec', :spec] do + sh "exit 0" +end + +desc "Run CI Unit tests" +task :ci_unit => [:ci_prep, 'ci:setup:testunit'] do + sh "cd test; rake test; exit 0" +end diff --git a/tasks/rake/dailybuild.rake b/tasks/rake/dailybuild.rake new file mode 100644 index 000000000..a19eb69cf --- /dev/null +++ b/tasks/rake/dailybuild.rake @@ -0,0 +1,9 @@ +desc "Create a Puppet daily build" +task :daily => :changelog do + version = "puppet" + "-" + Time.now.localtime.strftime("%Y%m%d") + sh "git archive --format=tar --prefix=#{version}/ HEAD^{tree} >#{version}.tar" + sh "pax -waf #{version}.tar -s ':^:#{version}/:' ChangeLog" + sh "rm ChangeLog" + sh "gzip -f -9 #{version}.tar" +end + diff --git a/tasks/rake/mail_patches.rake b/tasks/rake/mail_patches.rake new file mode 100644 index 000000000..82455e87f --- /dev/null +++ b/tasks/rake/mail_patches.rake @@ -0,0 +1,35 @@ +desc "Send patch information to the puppet-dev list" +task :mail_patches do + if Dir.glob("00*.patch").length > 0 + raise "Patches already exist matching '00*.patch'; clean up first" + end + + unless %x{git status} =~ /On branch (.+)/ + raise "Could not get branch from 'git status'" + end + branch = $1 + + unless branch =~ %r{^([^\/]+)/([^\/]+)/([^\/]+)$} + raise "Branch name does not follow // model; cannot autodetect parent branch" + end + + type, parent, name = $1, $2, $3 + + # Create all of the patches + sh "git format-patch -C -M -s -n --subject-prefix='PATCH/puppet' #{parent}..HEAD" + + # And then mail them out. + + # If we've got more than one patch, add --compose + if Dir.glob("00*.patch").length > 1 + compose = "--compose" + else + compose = "" + end + + # Now send the mail. + sh "git send-email #{compose} --no-signed-off-by-cc --suppress-from --to puppet-dev@googlegroups.com 00*.patch" + + # Finally, clean up the patches + sh "rm 00*.patch" +end diff --git a/tasks/rake/metrics.rake b/tasks/rake/metrics.rake new file mode 100644 index 000000000..63af55257 --- /dev/null +++ b/tasks/rake/metrics.rake @@ -0,0 +1,6 @@ +begin + require 'metric_fu' +rescue LoadError + # Metric-fu not installed + # http://metric-fu.rubyforge.org/ +end diff --git a/tasks/rake/tracdocs.rake b/tasks/rake/tracdocs.rake new file mode 100644 index 000000000..d26d8fc17 --- /dev/null +++ b/tasks/rake/tracdocs.rake @@ -0,0 +1,8 @@ +task :tracdocs do + require 'puppet' + require 'puppet/util/reference' + Puppet::Util::Reference.references.each do |ref| + sh "puppetdoc -m trac -r #{ref.to_s}" + end +end + -- cgit