diff options
Diffstat (limited to 'Rakefile')
-rwxr-xr-x[-rw-r--r--] | Rakefile | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/Rakefile b/Rakefile index 5065fb286b..1f3c770c77 100644..100755 --- a/Rakefile +++ b/Rakefile @@ -1,9 +1,18 @@ +#!/usr/bin/env rake gem 'rdoc', '>= 2.5.10' require 'rdoc' -require 'rake' require 'rdoc/task' -require 'rake/gempackagetask' +require 'net/http' + +$:.unshift File.expand_path('..', __FILE__) +require "tasks/release" + +desc "Build gem files for all projects" +task :build => "all:build" + +desc "Release all gems to gemcutter and create a tag" +task :release => "all:release" # RDoc skips some files in the Rails tree due to its binary? predicate. This is a quick # hack for edge docs, until we decide which is the correct way to address this issue. @@ -54,27 +63,6 @@ task :smoke do system %(cd activerecord && #{$0} sqlite3:isolated_test) end -spec = eval(File.read('rails.gemspec')) -Rake::GemPackageTask.new(spec) do |pkg| - pkg.gem_spec = spec -end - -desc "Release all gems to gemcutter. Package rails, package & push components, then push rails" -task :release => :release_projects do - require 'rake/gemcutter' - Rake::Gemcutter::Tasks.new(spec).define - Rake::Task['gem:push'].invoke -end - -desc "Release all components to gemcutter." -task :release_projects => :package do - errors = [] - PROJECTS.each do |project| - system(%(cd #{project} && #{$0} release)) || errors << project - end - fail("Errors in #{errors.join(', ')}") unless errors.empty? -end - desc "Install gems for all projects." task :install => :gem do version = File.read("RAILS_VERSION").strip @@ -172,3 +160,27 @@ task :update_versions do end end end + +# +# We have a webhook configured in Github that gets invoked after pushes. +# This hook triggers the following tasks: +# +# * updates the local checkout +# * updates Rails Contributors +# * generates and publishes edge docs +# * if there's a new stable tag, generates and publishes stable docs +# +# Everything is automated and you do NOT need to run this task normally. +# +# We publish a new version by tagging, and pushing a tag does not trigger +# that webhook. Stable docs would be updated by any subsequent regular +# push, but if you want that to happen right away just run this. +# +desc 'Publishes docs, run this AFTER a new stable tag has been pushed' +task :publish_docs do + Net::HTTP.new('rails-hooks.hashref.com').start do |http| + request = Net::HTTP::Post.new('/rails-master-hook') + response = http.request(request) + puts response.body + end +end |