omniauth--omniauth/Rakefile

159 lines
3.2 KiB
Ruby
Raw Normal View History

OMNIAUTH_GEMS = %w(oa-basic oa-core oa-oauth oa-openid oa-enterprise oa-more)
2010-03-25 23:37:03 +00:00
def each_gem(action, &block)
OMNIAUTH_GEMS.each do |gem|
puts "#{gem} #{action}"
Dir.chdir(gem) do
yield
end
end
end
2010-03-25 23:37:03 +00:00
def version
File.read("VERSION").strip
end
def bump_version(position)
v = version.split('.').map{|s| s.to_i}
v[position] += 1
write_version(*v)
end
def write_version(major, minor, patch)
v = version.split('.').map{|s| s.to_i}
v[0] = major unless major.nil?
v[1] = minor unless minor.nil?
v[2] = patch unless patch.nil?
File.open("VERSION", 'w') do |f|
f.write v.join('.')
end
each_gem('is writing version file...') do
File.open("VERSION", 'w') do |f|
f.write v.join('.')
end
end
display_version
end
def display_version
puts "Version is now #{version}"
end
desc "Display the current version"
task :version do
display_version
end
namespace :version do
desc "Write version with MAJOR, MINOR, and PATCH level env variables."
task :write do
write_version(ENV['MAJOR'], ENV['MINOR'], ENV['PATCH'])
end
namespace :bump do
desc "Increment the major version"
task :major do
bump_version(0)
end
desc "Increment the minor version"
task :minor do
bump_version(1)
end
desc "Increment the patch version"
task :patch do
bump_version(2)
end
end
end
desc "Run specs for all of the gems"
task :spec do
error_gems = []
2011-04-22 07:52:45 +00:00
each_gem('specs are running...') do |gem|
unless system('bundle exec rake spec')
2011-04-22 07:52:45 +00:00
error_gems << gem
end
end
2011-04-22 08:11:29 +00:00
puts
if error_gems.any?
puts "#{error_gems.size} gems with failing specs: #{error_gems.join(', ')}"
exit(1)
else
puts "All gems passed specs."
end
2010-03-25 23:37:03 +00:00
end
2011-04-22 08:11:29 +00:00
desc "Release all gems to gemcutter and create a tag"
task :release => ['tag', 'clean', 'build', 'publish']
task :tag do
system("git tag v#{version.join}")
2011-04-22 08:11:29 +00:00
system('git push origin --tags')
end
2011-04-22 08:11:29 +00:00
task :publish do
each_gem('is releasing to Rubygems...') do
system("gem push pkg/#{gem}-#{version.join}.gem")
end
system("gem push pkg/omniauth-#{version.join}.gem")
end
def build_gem
system('gem build omniauth.gemspec')
FileUtils.mkdir_p('pkg')
FileUtils.mv("omniauth-#{version}.gem", 'pkg')
end
def install_gem
system("gem install pkg/omniauth-#{version}.gem")
end
2011-04-22 08:11:29 +00:00
desc "Build gem files for all projects"
2011-04-22 07:52:45 +00:00
task :build do
each_gem('is building...') do
2011-04-22 07:52:45 +00:00
system('rake build')
end
build_gem
2011-04-22 07:52:45 +00:00
end
2011-04-22 08:11:29 +00:00
desc "Install gems for all projects"
2011-04-22 07:52:45 +00:00
task :install do
each_gem('is installing...') do
2011-04-22 07:52:45 +00:00
system('rake install')
2010-06-13 17:20:52 +00:00
end
build_gem
install_gem
2011-04-22 07:52:45 +00:00
end
2010-06-13 17:20:52 +00:00
desc "Clean pkg and other stuff"
task :clean do
OMNIAUTH_GEMS.each do |gem|
Dir.chdir(gem) do
%w(tmp pkg coverage dist).each do |directory|
FileUtils.rm_rf directory
end
2010-06-13 17:20:52 +00:00
end
%w(tmp pkg coverage dist).each do |directory|
FileUtils.rm_rf directory
end
end
Dir["**/*.gem"].each do |gem|
FileUtils.rm_rf gem
2010-06-13 17:20:52 +00:00
end
end
2010-06-13 01:29:31 +00:00
task :default => :spec
2011-04-22 07:52:45 +00:00
task :test => :spec
namespace :doc do
require 'yard'
YARD::Rake::YardocTask.new do |task|
task.files = OMNIAUTH_GEMS.map{|gem| ["#{gem}/lib/**/*.rb"]} + ['README.markdown', 'LICENSE']
task.options = [
'--markup', 'markdown',
'--markup-provider', 'maruku',
]
end
end