Skip to content

Commit b377d9a

Browse files
committed
refactored build script a bit
1 parent 657a70f commit b377d9a

File tree

2 files changed

+52
-22
lines changed

2 files changed

+52
-22
lines changed

RakeFile

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
require 'fileutils'
22
require 'rexml/document'
3+
require 'json'
34
require 'albacore'
45

5-
NH_VERSION = '4.x'
6-
NUSPEC_PATH = 'src/FluentNHibernate.nuspec'
7-
SLN_PATH = 'src/FluentNHibernate.sln'
8-
9-
# Albacore.configure do |config|
10-
# config.log_level = :verbose
11-
# end
6+
PROPS = 'src/CommonAssemblyInfo.cs'
7+
SLN = 'src/FluentNHibernate.sln'
8+
CONFIG = 'config.json'
129

1310
module Platform
1411

@@ -30,10 +27,21 @@ module Platform
3027
sw + arg
3128
end
3229

30+
def self.config
31+
JSON.parse(File.read(CONFIG))
32+
end
33+
3334
end
3435

36+
NH_VERSION = Platform.config['build']['nh_precompiler_switch']
37+
NUSPEC = Platform.config['nuspec']['filename']
38+
39+
# Albacore.configure do |config|
40+
# config.log_level = :verbose
41+
# end
42+
3543
def get_version
36-
ENV['BUILD_NUMBER'] || '2.0.0.1'
44+
ENV['BUILD_NUMBER'] || Platform.config['default_version_number']
3745
end
3846

3947
task :default => ['ripple:restore', 'source:update_version', 'build:all']
@@ -58,7 +66,7 @@ end
5866
namespace :source do
5967
desc 'Update assembly info with latest version number'
6068
assemblyinfo :update_version do |info|
61-
info.output_file = 'src/CommonAssemblyInfo.cs'
69+
info.output_file = PROPS
6270

6371
commit_hash = `git log -1 --format="%H%"`
6472

@@ -90,9 +98,9 @@ namespace :source do
9098
WarningLevel: 0
9199
}
92100
msbuild.targets [:Clean, :Build]
93-
msbuild.solution = SLN_PATH
101+
msbuild.solution = SLN
94102
msbuild.verbosity = :minimal
95-
msbuild.parameters = ["/p:TargetFrameworkVersion=v4.0"]
103+
msbuild.parameters = ["/p:TargetFrameworkVersion=#{Platform.config['build']['msbuild_runtime']}"]
96104
end
97105
end
98106

@@ -102,15 +110,15 @@ namespace :specs do
102110

103111
desc 'Run MSpec specs'
104112
mspec :mspec do |mspec|
105-
mspec.command = 'src/packages/Machine.Specifications.0.5.15/tools/mspec-clr4.exe'
106-
mspec.assemblies 'src/FluentNHibernate.Specs/bin/Release/FluentNHibernate.Specs.dll'
113+
mspec.command = "src/packages/Machine.Specifications.0.5.15/tools/mspec#{Platform.config['tests']['mspec_exec_suffix']}.exe"
114+
mspec.assemblies = [ 'src/FluentNHibernate.Specs/bin/Release/FluentNHibernate.Specs.dll' ]
107115
end
108116

109117
desc 'Run NUnit tests'
110118
nunit :nunit do |nunit|
111119
nunit.command = 'src/packages/NUnit.2.5.7.10213/Tools/nunit-console-x86.exe'
112-
nunit.assemblies 'src/FluentNHibernate.Testing/bin/Release/FluentNHibernate.Testing.dll'
113-
nunit.parameters = [ "/framework:net-4.0" ]
120+
nunit.assemblies = [ 'src/FluentNHibernate.Testing/bin/Release/FluentNHibernate.Testing.dll' ]
121+
nunit.parameters = [ "/framework:#{Platform.config['tests']['nunit_framework_runtime']}" ]
114122
end
115123
end
116124

@@ -131,7 +139,7 @@ namespace :docs do
131139
desc 'Create API docs'
132140
docu :build do |d|
133141
d.command = 'tools/docu/docu.exe'
134-
d.assemblies 'build/FluentNHibernate.dll'
142+
d.assemblies = [ 'build/FluentNHibernate.dll' ]
135143
end
136144
end
137145

@@ -174,12 +182,14 @@ namespace :package do
174182
end
175183

176184
task :nuspec do |nu|
177-
puts "Updating #{NUSPEC_PATH}"
178-
update_xml NUSPEC_PATH do |xml|
185+
config = Platform.config['nuspec']
186+
187+
puts "Updating #{NUSPEC}"
188+
update_xml NUSPEC do |xml|
179189
# Override the version number in the nuspec file with the one from this rake file (set above)
180190
xml.root.elements["metadata/version"].text = get_version
181191

182-
xml.root.elements["metadata/dependencies/dependency[@id='NHibernate']"].attributes['version'] = '4.0'
192+
xml.root.elements["metadata/dependencies/dependency[@id='NHibernate']"].attributes['version'] = config['nhibernate_version_interval']
183193

184194
xml.root.elements["metadata/authors"].text = "James Gregory and contributors"
185195
xml.root.elements["metadata/owners"].text = "jagregory, chester89"
@@ -189,13 +199,13 @@ namespace :package do
189199
xml.root.elements["metadata/projectUrl"].text = "http://fluentnhibernate.org"
190200
xml.root.elements["metadata/tags"].text = "orm dal nhibernate conventions"
191201

192-
xml.root.elements["files/file[contains(@src, 'bin\\Release\\FluentNHibernate.*')]"].attributes['target'] = 'lib\net40'
202+
xml.root.elements["files/file[contains(@src, 'bin\\Release\\FluentNHibernate.*')]"].attributes['target'] = "lib\\#{config['binaries_folder']}"
193203
end
194204
end
195205

196206
nugetpack :nupack do |nu|
197207
nu.command = 'tools/nuget/NuGet.exe'
198-
nu.nuspec = NUSPEC_PATH
208+
nu.nuspec = NUSPEC
199209
nu.base_folder = 'Release'
200210
nu.output = 'dist'
201211
end
@@ -226,6 +236,6 @@ end
226236

227237
task :sln do
228238
Thread.new do
229-
system "devenv #{SLN_PATH}"
239+
system "devenv #{SLN}"
230240
end
231241
end

config.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"framework_version": 4.0,
3+
"default_version_number": "2.0.0.1",
4+
"build":
5+
{
6+
"nh_precompiler_switch": "4.x",
7+
"msbuild_runtime": "v4.0"
8+
},
9+
"tests":
10+
{
11+
"nunit_framework_runtime": "net-4.0",
12+
"mspec_exec_suffix": "-clr4"
13+
},
14+
"nuspec":
15+
{
16+
"filename": "FluentNHibernate.nuspec",
17+
"nhibernate_version_interval": "4.0",
18+
"binaries_folder": "net40"
19+
}
20+
}

0 commit comments

Comments
 (0)