diff --git a/jekyll-docs/Rakefile b/jekyll-docs/Rakefile index 0d103d52..a86fd4f8 100644 --- a/jekyll-docs/Rakefile +++ b/jekyll-docs/Rakefile @@ -1,14 +1,24 @@ -require "bundler/gem_tasks" -task :build => :init task :default => :init -def jekyll_version +def name + "jekyll-docs".freeze +end + +def gemspec_file + "#{name}.gemspec" +end + +def gem_file + "#{name}-#{version}.gem" +end + +def version ENV.fetch('JEKYLL_VERSION') end task :init do sh "git clone git://github.com/jekyll/jekyll.git jekyll" unless Dir.exist? "jekyll/.git" - Dir.chdir("jekyll") { sh "git checkout v#{jekyll_version}" } + Dir.chdir("jekyll") { sh "git checkout v#{version}" } rm_rf "site" cp_r "jekyll/site", "site" end @@ -17,3 +27,29 @@ task :teardown do rm_rf "site" rm_rf "jekyll" end + +############################################################################# +# +# Packaging tasks +# +############################################################################# + +desc "Release #{name} v#{version}" +task :release => :build do + unless `git branch` =~ /^\* master$/ + puts "You must be on the master branch to release!" + exit! + end + unless `git diff`.empty? + puts "We cannot proceed with uncommitted changes!" + exit! + end + sh "gem push pkg/#{name}-#{version}.gem" +end + +desc "Build #{name} v#{version} into pkg/" +task :build => :init do + mkdir_p "pkg" + sh "gem build #{gemspec_file}" + sh "mv #{gem_file} pkg" +end