Files
OwinOAuthProviders/Rakefile.rb
Tommy Parnell 1625f787d2 build things
2016-07-02 13:25:30 -07:00

84 lines
2.2 KiB
Ruby

require 'rake'
require 'erb'
require 'rake/clean'
require 'albacore'
require 'open-uri'
require 'fileutils'
require 'os'
require 'nokogiri'
require 'openssl'
import 'nuget.rake'
CLEAN.include(['src/**/obj', 'src/**/bin', 'tool', 'packages/**','src/**/*.nuspec', 'src/**/*.nupkg', 'tools', 'packages', '*.nupkg'])
Configuration = ENV['CONFIGURATION'] || 'Release'
PACKAGES = File.expand_path("packages")
TOOLS = File.expand_path("tools")
NUGET = File.expand_path("#{TOOLS}/nuget")
NUGET_EXE = File.expand_path("#{TOOLS}/nuget/nuget.exe")
@version = ENV['APPVEYOR_REPO_TAG_NAME'] || '0.0.1-alpha1'
@version = @version.sub "v", ""
PROJECTS = Dir.glob('src/*').select{|dir| File.directory? dir }
desc 'Retrieve things'
task :retrieve => ["nuget:fetch"]
desc 'Does the build'
task :build => [:retrieve, :compile]
desc 'clean, retrieve, build, generate nuspecs'
task :preflight => [:clean, :build, :nuspec_gen]
desc 'publish'
task :publish => [:preflight,:nuspec_gen, :nuspec_pack, :nuspec_publish]
build :compile do |t|
t.prop 'Configuration', Configuration
t.sln = 'OwinOAuthProviders.sln'
end
desc "Generate nuspec files"
task :nuspec_gen do
template = ERB.new(File.read('nuspectemplate.nuspec.erb'))
@nugets = []
PROJECTS.each{|directory|
@id = File.basename(directory)
@nugets.push(@id)
output = template.result()
File.write(File.join(directory, "#{@id}.nuspec"), output)
}
File.write('Owin.Security.Providers.nuspec', ERB.new(File.read('global.nuspec.erb')).result())
end
desc 'pack nuspec files'
task :nuspec_pack do
PROJECTS.each{|dir|
Dir.chdir(dir) do
sh "#{NUGET_EXE} pack #{FileList["*.csproj"].first} -Prop Configuration=#{Configuration}"
end
}
sh "#{NUGET_EXE} pack Owin.Security.Providers.nuspec -Exclude \"**\""
end
desc 'publish nugets'
task :nuspec_publish do
repoTag = ENV['APPVEYOR_REPO_TAG']
nugetKey = ENV['NUGET_KEY']
puts nugetKey
if repoTag != 'true';
puts 'not publishing since APPVEYOR_REPO_TAG has not been set. Please add a github tag'
else
PROJECTS.each{|dir|
Dir.chdir(dir) do
sh "#{NUGET_EXE} push #{FileList["*.nupkg"].first} -ApiKey #{nugetKey}"
end
}
sh "#{NUGET_EXE} push #{FileList["*.nupkg"].first} -ApiKey #{nugetKey}"
end
end