albacore 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/albacore/msbuild.rb +19 -2
- data/lib/albacore/msdeploy.rb +21 -19
- data/lib/version.rb +1 -1
- data/spec/msbuild_spec.rb +46 -5
- metadata +7 -7
data/lib/albacore/msbuild.rb
CHANGED
@@ -8,7 +8,7 @@ class MSBuild
|
|
8
8
|
|
9
9
|
attr_accessor :solution, :verbosity, :loggermodule, :max_cpu_count
|
10
10
|
attr_array :targets
|
11
|
-
attr_hash :properties
|
11
|
+
attr_hash :properties, :other_switches
|
12
12
|
|
13
13
|
def initialize
|
14
14
|
super()
|
@@ -33,6 +33,7 @@ class MSBuild
|
|
33
33
|
command_parameters << "\"/maxcpucount:#{@max_cpu_count}\"" if @max_cpu_count != nil
|
34
34
|
command_parameters << "\"/nologo\"" if @nologo
|
35
35
|
command_parameters << build_properties if @properties != nil
|
36
|
+
command_parameters << build_switches if @other_switches != nil
|
36
37
|
command_parameters << "\"/target:#{build_targets}\"" if @targets != nil
|
37
38
|
|
38
39
|
result = run_command "MSBuild", command_parameters.join(" ")
|
@@ -40,7 +41,7 @@ class MSBuild
|
|
40
41
|
failure_message = 'MSBuild Failed. See Build Log For Detail'
|
41
42
|
fail_with_message failure_message if !result
|
42
43
|
end
|
43
|
-
|
44
|
+
|
44
45
|
def check_solution(file)
|
45
46
|
return if file
|
46
47
|
msg = 'solution cannot be nil'
|
@@ -58,4 +59,20 @@ class MSBuild
|
|
58
59
|
end
|
59
60
|
option_text.join(" ")
|
60
61
|
end
|
62
|
+
|
63
|
+
def build_switches
|
64
|
+
switch_text = []
|
65
|
+
@other_switches.each do |key, value|
|
66
|
+
switch_text << print_switch(key, value)
|
67
|
+
end
|
68
|
+
switch_text.join(" ")
|
69
|
+
end
|
70
|
+
|
71
|
+
def print_switch(key, value)
|
72
|
+
pure_switch?(value) ? "/#{key}" : "/#{key}:\"#{value}\""
|
73
|
+
end
|
74
|
+
|
75
|
+
def pure_switch?(value)
|
76
|
+
value.is_a?(TrueClass) || value == :true
|
77
|
+
end
|
61
78
|
end
|
data/lib/albacore/msdeploy.rb
CHANGED
@@ -18,7 +18,6 @@ class MSDeploy
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def execute
|
21
|
-
|
22
21
|
if(@command.nil?)
|
23
22
|
@command = get_msdeploy_path
|
24
23
|
end
|
@@ -38,27 +37,30 @@ class MSDeploy
|
|
38
37
|
|
39
38
|
failure_msg = 'MSDeploy Failed. See build log for details'
|
40
39
|
fail_with_message failure_msg if !result
|
41
|
-
|
40
|
+
end
|
42
41
|
|
43
42
|
def get_msdeploy_path
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
if
|
48
|
-
|
49
|
-
|
50
|
-
|
43
|
+
#check the environment paths
|
44
|
+
ENV['PATH'].split(';').each do |path|
|
45
|
+
msdeploy_path = File.join(path, 'msdeploy.exe')
|
46
|
+
return msdeploy_path if File.exists?(msdeploy_path)
|
47
|
+
end
|
48
|
+
|
49
|
+
#check the environment variables
|
50
|
+
if ENV['MSDeployPath']
|
51
|
+
msdeploy_path = File.join(ENV['MSDeployPath'], 'msdeploy.exe')
|
52
|
+
return msdeploy_path if File.exists?(msdeploy_path)
|
53
|
+
end
|
54
|
+
|
51
55
|
#check if it's in registry
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
return "#{msdeploy_path}msdeploy.exe"
|
61
|
-
end
|
56
|
+
Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\Microsoft\IIS Extensions\MSDeploy\2') do |reg|
|
57
|
+
reg_typ, reg_val = reg.read('InstallPath') # no checking for x86 here.
|
58
|
+
msdeploy_path = reg_val
|
59
|
+
return msdeploy_path if File.exists?(msdeploy_path)
|
60
|
+
end
|
61
|
+
|
62
|
+
fail_with_message 'MSDeploy could not be found is it installed?'
|
63
|
+
end
|
62
64
|
|
63
65
|
def get_package
|
64
66
|
#is it a direct file
|
data/lib/version.rb
CHANGED
data/spec/msbuild_spec.rb
CHANGED
@@ -3,7 +3,6 @@ require 'albacore/msbuild'
|
|
3
3
|
require 'albacore/config/msbuildconfig'
|
4
4
|
require 'msbuildtestdata'
|
5
5
|
|
6
|
-
|
7
6
|
shared_context "prepping msbuild" do
|
8
7
|
before :all do
|
9
8
|
@testdata = MSBuildTestData.new
|
@@ -11,6 +10,7 @@ shared_context "prepping msbuild" do
|
|
11
10
|
@strio = StringIO.new
|
12
11
|
@msbuild.log_device = @strio
|
13
12
|
@msbuild.log_level = :diagnostic
|
13
|
+
@msbuild.properties :platform => 'Any CPU'
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -28,7 +28,7 @@ describe MSBuild, "when building a solution with verbose logging turned on" do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should log the msbuild command line being called" do
|
31
|
-
|
31
|
+
com = @log_data.downcase().should include("Executing MSBuild: \"C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe\"".downcase())
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -130,8 +130,8 @@ describe MSBuild, "when building a visual studio solution for a specified config
|
|
130
130
|
before :all do
|
131
131
|
@testdata= MSBuildTestData.new("Release")
|
132
132
|
@msbuild = @testdata.msbuild
|
133
|
-
|
134
|
-
@msbuild.properties :configuration => :Release
|
133
|
+
|
134
|
+
@msbuild.properties :configuration => :Release, :platform => 'Any CPU'
|
135
135
|
@msbuild.solution = @testdata.solution_path
|
136
136
|
@msbuild.execute
|
137
137
|
end
|
@@ -181,7 +181,7 @@ describe MSBuild, "when specifying multiple configuration properties" do
|
|
181
181
|
File.delete(@testdata.output_path) if File.exist?(@testdata.output_path)
|
182
182
|
|
183
183
|
@msbuild.targets :Clean, :Build
|
184
|
-
@msbuild.properties :configuration => :Debug, :DebugSymbols => true
|
184
|
+
@msbuild.properties :configuration => :Debug, :DebugSymbols => true, :platform => 'Any CPU'
|
185
185
|
@msbuild.solution = @testdata.solution_path
|
186
186
|
@msbuild.execute
|
187
187
|
end
|
@@ -244,3 +244,44 @@ describe MSBuild, "when specifying max cpu count" do
|
|
244
244
|
end
|
245
245
|
end
|
246
246
|
|
247
|
+
describe MSBuild, "when including a TrueClass switch" do
|
248
|
+
include_context "prepping msbuild"
|
249
|
+
|
250
|
+
before :all do
|
251
|
+
@msbuild.other_switches :noconsolelogger => true
|
252
|
+
@msbuild.solution = @testdata.solution_path
|
253
|
+
@msbuild.execute
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'should call msbuild with the noconsolelogger switch' do
|
257
|
+
@msbuild.system_command.should include('/noconsolelogger')
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
describe MSBuild, "when including a true symbol switch" do
|
262
|
+
include_context "prepping msbuild"
|
263
|
+
|
264
|
+
before :all do
|
265
|
+
@msbuild.other_switches :noconsolelogger => :true
|
266
|
+
@msbuild.solution = @testdata.solution_path
|
267
|
+
@msbuild.execute
|
268
|
+
end
|
269
|
+
|
270
|
+
it 'should call msbuild with the noconsolelogger switch' do
|
271
|
+
@msbuild.system_command.should include('/noconsolelogger')
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
describe MSBuild, "when including a switch with value" do
|
276
|
+
include_context "prepping msbuild"
|
277
|
+
|
278
|
+
before :all do
|
279
|
+
@msbuild.other_switches :toolsVersion => 3.5
|
280
|
+
@msbuild.solution = @testdata.solution_path
|
281
|
+
@msbuild.execute
|
282
|
+
end
|
283
|
+
|
284
|
+
it 'should call msbuild with the noconsolelogger switch' do
|
285
|
+
@msbuild.system_command.should include("/toolsVersion:\"3.5\"")
|
286
|
+
end
|
287
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: albacore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-09-
|
13
|
+
date: 2012-09-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rubyzip
|
17
|
-
requirement: &
|
17
|
+
requirement: &2985840 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2985840
|
26
26
|
description: Easily build your .Net or Mono project using this collection of Rake
|
27
27
|
tasks.
|
28
28
|
email: henrik@haf.se
|
@@ -692,7 +692,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
692
692
|
version: '0'
|
693
693
|
segments:
|
694
694
|
- 0
|
695
|
-
hash:
|
695
|
+
hash: -36994097
|
696
696
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
697
697
|
none: false
|
698
698
|
requirements:
|
@@ -701,10 +701,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
701
701
|
version: '0'
|
702
702
|
segments:
|
703
703
|
- 0
|
704
|
-
hash:
|
704
|
+
hash: -36994097
|
705
705
|
requirements: []
|
706
706
|
rubyforge_project: albacore
|
707
|
-
rubygems_version: 1.
|
707
|
+
rubygems_version: 1.8.16
|
708
708
|
signing_key:
|
709
709
|
specification_version: 3
|
710
710
|
summary: Dolphin-safe and awesome Mono and .Net Rake-tasks
|