Add the ability to release jekyll-docs with the right site.

This commit is contained in:
Parker Moore 2016-02-19 16:54:00 -08:00
parent 5d66a12ed4
commit 391960b55f
1 changed files with 40 additions and 4 deletions

View File

@ -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