rake-dotnet release v0.0.8
Just a smattering of small changes and bug-fixes; here’s the change-log:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | === 0.0.8 / 2009-? * CHANGE: Eliminate the need to pass stuff to AssemblyInfoTask when it can just use the defaults ... by default. * FIX: Bug with harvesting when output contains directories * FIX: Test-runner now executes from within the same directory as the DLL(s) containing tests that it's running through. === 0.0.7 / 2009-04-15 * CHANGE: Adjust TOOLS_DIR initialisation so it looks for a shared 3rdparty folder at the same level as the product folder first, then it looks for a 3rdparty folder inside of the product folder. * CHANGE: Adjust the Demo's Rakefile to make FxCop ignore assemblies with "Tests" in their filename. === 0.0.6 / 2009-04-06 * Move source control to github at http://github.com/petemounce/rake-dotnet * Change format of readme to markdown for prettiness on the repo homepage * FIX: YYYYMMDD is invalid for file/assembly-version attribute; use '0' instead in non-svn source-control case. * FIX: Fix harvesting a web-application when it's not under svn source-control |
What’s next? The nice people at NCover have granted me a free license to their code-coverage tool; I’ll be wrapping that in the next major release. I also plan to implement tasks for NUnit and Gallio. That should do for planning, for the time being…
Oh – it occurs to me that I’ve talked about it, but not really shown what it allows (though there is a demo inside of source-control -> DemoRoot). So, here’s the ~35 line Rakefile that gets you:
- AssemblyInfo watermarking
- compilation
- XUnit.NET testing/reporting
- FxCop reporting
- simple NCover reporting (as in, only one report choice at the moment)
- harvesting-to-one-place for publishing to CI artifacts
- packaging output into zip files for xcopy-deployment (even if xcopy is so … DOS…
)
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 | # Documentation: http://rake.rubyforge.org/ -> Files/doc/rakefile.rdoc require 'rake' require 'rake/tasklib' require 'rake_dotnet' PRODUCT_NAME = ENV['PRODUCT_NAME'] ? ENV['PRODUCT_NAME'] : 'IncludeCombiner' COMPANY = ENV['COMPANY'] ? ENV['COMPANY'] : 'NeverRunWithScissors.com' RDNVERSION = Versioner.new.get Rake::AssemblyInfoTask.new bin_out = File.join(OUT_DIR, 'bin') Rake::MsBuildTask.new({:verbosity=>MSBUILD_VERBOSITY, :deps=>[bin_out, :assembly_info]}) Rake::HarvestOutputTask.new({:deps => [:compile]}) Rake::XUnitTask.new({:options=>{:html=>true,:xml=>true}, :deps=>[:compile, :harvest_output]}) Rake::FxCopTask.new({:deps=>[:compile, :harvest_output]}) do |fxc| fxc.dll_list.exclude("#{@suites_dir}/**/*Tests*.dll") end Rake::NCoverTask.new({:deps=>[:compile, :harvest_output], :ncover_options=>{:arch=>'amd64'}, :ncover_reporting_options=>{:arch=>'amd64'}}) demo_site = File.join(OUT_DIR, 'Demo.Site') Rake::HarvestWebApplicationTask.new({:deps=>[:compile]}) Rake::RDNPackageTask.new(name='bin', version=RDNVERSION, {:deps=>[:harvest_output, :xunit]}) do |p| p.targets.include("#{bin_out}/*") end Rake::RDNPackageTask.new(name='Demo.Site', version=RDNVERSION, {:deps=>[:harvest_webapps, :xunit]}) do |p| p.targets.include("#{demo_site}/*") end task :default => [:compile, :harvest_output, :xunit, :package] |
The Rakefile is from the other thing I’m working on at the moment while I’m at a loose end. Watch this space…
April 15th, 2009 in
development, tools | tags: automation, build, continuous-integration, development, rake, rake-dotnet







