forked from nhibernate/fluent-nhibernate
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRakeFile
123 lines (103 loc) · 3.53 KB
/
RakeFile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
require 'fileutils'
require 'albacore'
def get_version
ENV['BUILD_NUMBER'] || '1.0.0.0'
end
task :default => 'build:all'
namespace :setup do
task :ensure_gemcutter_source do
puts 'Ensuring gemcutter.org is registered as a gem source'
unless `gem source -l`.include? 'http://gemcutter.org'
puts 'Setting Gemcutter as a gem source'
`gem source -a http://gemcutter.org`
end
end
end
namespace :ci do
task :run_ci_build => [
'build:all',
'docs:build',
'package:all',
]
end
namespace :source do
desc 'Update assembly info with latest version number'
assemblyinfo :update_version do |asm|
asm.output_file = 'src/CommonAssemblyInfo.cs'
asm.version = get_version
asm.company_name = 'http://fluentnhibernate.org'
asm.product_name = 'FluentNHibernate'
asm.copyright = 'Copyright 2008-2009 James Gregory and contributors (Paul Batum, Andrew Stewart, Hudson Akridge, Stuart Childs et al). All rights reserved.'
asm.namespaces = ['System.Security']
asm.custom_attributes :AllowPartiallyTrustedCallers => nil
puts "The build number is #{asm.version}"
end
desc 'Compile the source'
msbuild :compile do |msb|
msb.properties = { :configuration => :Release }
msb.targets [:Clean, :Build]
msb.solution = 'src/FluentNHibernate.sln'
end
end
namespace :specs do
desc 'Run all tests and specs'
task :all => [:nunit, :mspec]
desc 'Run MSpec specs'
mspec :mspec do |mspec|
mspec.path_to_command = 'tools/mspec/mspec.exe'
mspec.assemblies << 'src/FluentNHibernate.Specs/bin/Release/FluentNHibernate.Specs.dll'
end
desc 'Run NUnit tests'
nunit :nunit do |nunit|
nunit.path_to_command = 'tools/nunit/nunit-console-x86.exe'
nunit.assemblies << 'src/FluentNHibernate.Testing/bin/Release/FluentNHibernate.Testing.dll'
end
end
namespace :build do
desc 'Run full build including tests'
task :all => ['source:update_version', 'source:compile', 'specs:all'] do
puts 'Copying output to build directory'
Dir.mkdir 'build' unless File.exist? 'build'
Dir.glob 'src/FluentNHibernate/bin/Release/*.{dll,pdb,xml}' do |path|
copy path, 'build' if File.file? path
end
puts 'Build complete'
end
end
namespace :docs do
desc 'Create API docs'
docu :build do |d|
d.path_to_command = 'tools/docu/docu.exe'
d.assemblies << 'build/FluentNHibernate.dll'
end
end
namespace :package do
task :prepare_dist_directory do
Dir.mkdir 'dist' unless File.exists? 'dist'
end
desc 'Create zip of source-tree'
zip :source => :prepare_dist_directory do |zip|
zip.directories_to_zip = ['./']
zip.output_file = "fluentnhibernate-source-#{get_version}.zip"
zip.output_path = 'dist'
zip.exclusions = [/.git/, /build/, /dist/, /results/, /_ReSharper/, /bin/, /obj/, /.user/, /.suo/, /.resharper/, /.cache/, /output/]
end
desc 'Create zip of binaries'
zip :binaries => :prepare_dist_directory do |zip|
zip.directories_to_zip = ['build']
zip.output_file = "fluentnhibernate-binary-#{get_version}.zip"
zip.output_path = 'dist'
end
desc 'Create zip of API docs'
zip :docs => :prepare_dist_directory do |zip|
zip.directories_to_zip = ['output']
zip.output_file = "fluentnhibernate-docs-#{get_version}.zip"
zip.output_path = 'dist'
end
task :all => [:source, :binaries, :docs]
end
task :sln do
Thread.new do
system "devenv src/FluentNHibernate.sln"
end
end