1
1
require 'fileutils'
2
+ require 'rexml/document'
2
3
require 'albacore'
3
4
4
5
NH_VERSION = '4.x'
6
+ NUSPEC_PATH = 'src/FluentNHibernate.nuspec'
7
+ SLN_PATH = 'src/FluentNHibernate.sln'
5
8
6
9
# Albacore.configure do |config|
7
10
# config.log_level = :verbose
@@ -30,7 +33,7 @@ module Platform
30
33
end
31
34
32
35
def get_version
33
- ENV['BUILD_NUMBER'] || '1.4. 0.0'
36
+ ENV['BUILD_NUMBER'] || '2. 0.0.1 '
34
37
end
35
38
36
39
task :default => ['ripple:restore', 'source:update_version', 'build:all']
@@ -87,7 +90,7 @@ namespace :source do
87
90
WarningLevel: 0
88
91
}
89
92
msb.targets [:Clean, :Build]
90
- msb.solution = 'src/FluentNHibernate.sln'
93
+ msb.solution = SLN_PATH
91
94
msb.verbosity = :minimal
92
95
msb.parameters = ["/p:TargetFrameworkVersion=v4.0"]
93
96
end
@@ -107,7 +110,7 @@ namespace :specs do
107
110
nunit :nunit do |nunit|
108
111
nunit.command = 'src/packages/NUnit.2.5.7.10213/Tools/nunit-console-x86.exe'
109
112
nunit.assemblies 'src/FluentNHibernate.Testing/bin/Release/FluentNHibernate.Testing.dll'
110
- nunit.parameters = [ "/framework:net-4.0" ]
113
+ nunit.parameters = [ "/framework:net-4.0" ]
111
114
end
112
115
end
113
116
@@ -170,41 +173,59 @@ namespace :package do
170
173
zip.output_path = 'dist'
171
174
end
172
175
173
- nuspec do |nu|
174
- nu.id = 'FluentNHibernate'
175
- nu.version = get_version()
176
- nu.authors = 'James Gregory and contributors'
177
- nu.description = 'Fluent, XML-less, compile safe, automated, convention-based mappings for NHibernate.'
178
- nu.title = 'Fluent NHibernate'
179
- nu.language = 'en-US'
180
- nu.licenseUrl = 'http://github.com/jagregory/fluent-nhibernate/raw/master/LICENSE.txt'
181
- nu.projectUrl = 'http://fluentnhibernate.org'
182
- nu.dependency 'NHibernate', '4.0'
183
- nu.working_directory = Dir.pwd
184
- nu.output_file = 'fluentnhibernate.nuspec'
185
- nu.file 'FluentNHibernate.dll', 'lib/net40'
186
- nu.file 'FluentNHibernate.pdb', 'lib/net40'
187
- nu.file 'FluentNHibernate.xml', 'lib/net40'
188
- nu.tags = 'orm dal nhibernate conventions'
189
- nu.pretty_formatting = true
176
+ task :nuspec do |nu|
177
+ puts "Updating #{NUSPEC_PATH}"
178
+ update_xml NUSPEC_PATH do |xml|
179
+ # Override the version number in the nuspec file with the one from this rake file (set above)
180
+ xml.root.elements["metadata/version"].text = get_version
181
+
182
+ xml.root.elements["metadata/dependencies/dependency[@id='NHibernate']"].attributes['version'] = '4.0'
183
+
184
+ xml.root.elements["metadata/authors"].text = "James Gregory and contributors"
185
+ xml.root.elements["metadata/owners"].text = "jagregory, chester89"
186
+ xml.root.elements["metadata/language"].text = "en-US"
187
+ xml.root.elements["metadata/description"].text = "Fluent, XML-less, compile safe, automated, convention-based mappings for NHibernate."
188
+ xml.root.elements["metadata/licenseUrl"].text = "http://github.com/jagregory/fluent-nhibernate/raw/master/LICENSE.txt"
189
+ xml.root.elements["metadata/projectUrl"].text = "http://fluentnhibernate.org"
190
+ xml.root.elements["metadata/tags"].text = "orm dal nhibernate conventions"
191
+
192
+ xml.root.elements["files/file[contains(@src, 'bin\\Release\\FluentNHibernate.*')]"].attributes['target'] = 'lib\net40'
193
+ end
190
194
end
191
195
192
- nugetpack do |nu|
196
+ nugetpack :nupack do |nu|
193
197
nu.command = 'tools/nuget/NuGet.exe'
194
- nu.nuspec = 'src/FluentNHibernate.nuspec'
198
+ nu.nuspec = NUSPEC_PATH
195
199
nu.base_folder = 'Release'
196
200
nu.output = 'dist'
197
201
end
198
202
199
203
desc 'Create nuget spec and package'
200
- task :nuget => [:nugetpack ]
204
+ task :nuget => [:nuspec, :nupack ]
201
205
202
206
desc 'Package everything (src, bin, docs, nuget)'
203
207
task :all => [:source, :binaries, :docs, :nuget]
204
208
end
205
209
210
+ def update_xml(xml_path)
211
+ #Open up the xml file
212
+ xml_file = File.new(xml_path)
213
+ xml = REXML::Document.new xml_file
214
+
215
+ #Allow caller to make the changes
216
+ yield xml
217
+
218
+ xml_file.close
219
+
220
+ #Save the changes
221
+ xml_file = File.open(xml_path, "w")
222
+ formatter = REXML::Formatters::Default.new(5)
223
+ formatter.write(xml, xml_file)
224
+ xml_file.close
225
+ end
226
+
206
227
task :sln do
207
228
Thread.new do
208
- system "devenv src/FluentNHibernate.sln "
229
+ system "devenv #{SLN_PATH} "
209
230
end
210
231
end
0 commit comments