我正在尝试使用Albacore的ZipTask压缩rake构建的工件.我正在构建的解决方案有三个项目,这些项目需要单独压缩工件,但这里只提到ASP.NET MVC项目.这是解决方案的目录结构:
rakefile.rb
solution.sln
src/
(other projects that are not relevant)
website/
(various folders I don't want included in the artifacts)
bin/
Content/
Scripts/
Views/
Default.aspx
Global.asax
web.config
Run Code Online (Sandbox Code Playgroud)
起初我写了这个任务:
website_directory = File.join '.', 'src', 'website'
website_project_name = 'website'
zip :zip => [ :run_unit_tests, :less ] do |zip|
zip.directories_to_zip = [ 'bin', 'Content', 'Scripts', 'Views' ].map{ |folder| File.join website_directory, folder }
zip.additional_files = [ 'Default.aspx', 'favicon.ico', 'Global.asax', 'web.config'].map{ |file| File.join website_directory, file }
zip.output_file = get_output_file_name
zip.output_path …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用rake和albacore构建多个C#项目.感觉我应该能够在没有循环的情况下做到这一点,但我无法让它工作.我要做的是:
msbuild :selected_test_projects do |msb, args|
@teststorun.each do |project|
msb.path_to_command = @net40Path
msb.properties :configuration => :Release,
msb.targets [ :Test]
msb.solution = project
msb.build
end
end
Run Code Online (Sandbox Code Playgroud)
我宁愿做一些比较清洁的事情
msbuild :selected_test_projects do |msb, args|
msb.path_to_command = @net40Path
msb.properties :configuration => :Release,
msb.targets [ :Test]
msb.solution = @teststorun
end
Run Code Online (Sandbox Code Playgroud) 我有一个Web应用程序项目(WAP)的解决方案,它在Visual Studio中构建和打包.但是,当我运行这个Albacore msbuild任务时,它不起作用.
msbuild :build do |msb|
msb.solution = '../../src/Solution.sln'
msb.targets :clean, :build, :Package
msb.properties = {
:configuration => :Dev
}
end
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
目标"包"在项目中不存在.... Solution.sln
如何使用Albacore和rake构建WAP并制作包?
更新:工作任务
msbuild :build do |msb|
msb.solution = '../../src/Solution.sln'
msb.targets :clean, :build
msb.parameters = '/p:DeployOnBuild=true;DeployTarget=Package'
msb.properties = {
:configuration => :Dev
}
end
Run Code Online (Sandbox Code Playgroud) 我正试图用zipAlbacore中的任务压缩,但是我收到了一个错误.这是IronRuby的问题吗?
task :publish => :build do
Rake::Task[:service].invoke
Rake::Task[:site].invoke
Rake::Task[:zip_svc].invoke
end
zip :zip_svc do |zip|
zip.directories_to_zip 'publish'
zip.output_file = 'Svc.zip'
zip.output_path = File.dirname(__FILE__)
end
Run Code Online (Sandbox Code Playgroud)
错误>
** Invoke zip_svc (first_time)
** Execute zip_svc
rake aborted!
wrong number of arguments (1 for 2)
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1113:in `<<'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1062:in `<<'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/ioextras.rb:125:in `write'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/ioextras.rb:9:in `copy_stream'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:832:in `write_to_zip_output_stream'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:772:in `get_input_stream'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:832:in `write_to_zip_output_stream'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1515:in `commit'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1153:in `each'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1153:in `each'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1515:in `commit'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:963:in `open'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1512:in `commit'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1601:in `on_success_replace'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1510:in `commit'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1525:in `close'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/rubyzip-0.9.4/lib/zip/zip.rb:1415:in `open'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/albacore-0.2.5/lib/albacore/zipdirectory.rb:28:in `execute'
c:/IronRuby/Lib/ruby/gems/1.9.1/gems/albacore-0.2.5/lib/albacore/support/createtask.rb:24:in `zip' …Run Code Online (Sandbox Code Playgroud) 我们有一个在TeamCity上运行的构建,包含几个不同的测试项目.它们各自一个接一个地运行,我们正在使用Rakefile中的MSTest.exe来编排所有内容,因此:
desc 'Run Unit Tests'
mstest :data_test => [:build_database_tests] do |mstest|
puts build_header("Data Tests")
mstest.command = msTestCommand
mstest.parameters = [
"/resultsfile:dTest.trx",
"/detail:errormessage",
"/detail:description",
"/usestderr"
]
mstest.assemblies "../../../Database/DataTests/bin/Release/DataTests.dll"
end
Run Code Online (Sandbox Code Playgroud)
这会生成一个很好的TRX文件,TeamCity可以解析它和所有内容,从而形成一个漂亮的干净报告选项卡.但是,如果测试失败,MSTest.exe将返回1,该rake将其解释为失败,并导致其余测试无法运行.
我们想抑制这种行为; 我们希望构建在测试失败时继续运行,以便我们可以看到其他测试也可能失败.如果测试失败,我们如何让Rake忽略返回代码,和/或导致MSTest.exe不发出失败的返回代码?