fuburake 0.9.5.37 → 1.0.0.38
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.
- checksums.yaml +8 -8
- data/lib/assembly_info.rb +43 -42
- data/lib/bottles.rb +16 -15
- data/lib/fubudocs.rb +103 -104
- data/lib/fuburake.rb +348 -346
- data/lib/msbuild.rb +54 -53
- data/lib/nuget.rb +20 -20
- data/lib/nunit.rb +81 -86
- data/lib/platform.rb +48 -15
- data/lib/ripple.rb +35 -34
- metadata +4 -4
data/lib/msbuild.rb
CHANGED
@@ -1,83 +1,84 @@
|
|
1
|
+
# vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
|
1
2
|
module FubuRake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
class MSBuild
|
4
|
+
def self.create_task(tasks, options)
|
5
|
+
if tasks.compile == nil
|
6
|
+
return nil
|
7
|
+
end
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
compileTask = Rake::Task.define_task :compile do
|
10
|
+
MSBuildRunner.compile options.merge(tasks.compile)
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
+
compileTask.add_description "Compiles the solution #{tasks.compile[:solutionfile]}"
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
openTask = Rake::Task.define_task :sln do
|
16
|
+
Platform.open("#{tasks.compile[:solutionfile]}")
|
17
|
+
end
|
18
|
+
openTask.add_description "Open solution #{tasks.compile[:solutionfile]}"
|
18
19
|
|
19
|
-
|
20
|
+
return compileTask
|
21
|
+
end
|
20
22
|
end
|
21
|
-
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
class CompileTarget
|
25
|
+
def initialize(name, solution)
|
26
|
+
@name = name
|
27
|
+
@solution = solution
|
28
|
+
end
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
def create(options)
|
31
|
+
compileTask = Rake::Task.define_task @name do
|
32
|
+
MSBuildRunner.compile options.merge({:solutionfile => @solution})
|
33
|
+
end
|
33
34
|
|
34
|
-
|
35
|
+
compileTask.add_description "Compiles #{@solution}"
|
36
|
+
end
|
35
37
|
end
|
36
|
-
end
|
37
38
|
end
|
38
39
|
|
39
40
|
|
40
41
|
class MSBuildRunner
|
41
42
|
def self.compile(attributes)
|
42
|
-
compileTarget = attributes.fetch(:compilemode, '
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
compileTarget = attributes.fetch(:compilemode, 'Debug')
|
44
|
+
solutionFile = attributes[:solutionfile]
|
45
|
+
|
46
|
+
attributes[:projFile] = solutionFile
|
47
|
+
attributes[:properties] ||= []
|
48
|
+
attributes[:properties] << "Configuration=#{compileTarget}"
|
49
|
+
attributes[:extraSwitches] = ["v:m", "t:rebuild"]
|
49
50
|
attributes[:extraSwitches] << "maxcpucount:2" unless Platform.is_nix
|
50
51
|
|
51
|
-
|
52
|
+
self.runProjFile(attributes);
|
52
53
|
end
|
53
|
-
|
54
|
+
|
54
55
|
def self.runProjFile(attributes)
|
55
56
|
version = attributes.fetch(:clrversion, 'v4.0.30319')
|
56
57
|
compileTarget = attributes.fetch(:compilemode, 'debug')
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
58
|
+
projFile = attributes[:projFile]
|
59
|
+
|
60
|
+
if Platform.is_nix
|
61
|
+
msbuildFile = `which xbuild`.chop
|
62
|
+
attributes[:properties] << "TargetFrameworkProfile="""""
|
63
|
+
else
|
64
|
+
frameworkDir = File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework', version)
|
65
|
+
msbuildFile = File.join(frameworkDir, 'msbuild.exe')
|
66
|
+
end
|
67
|
+
|
68
|
+
properties = attributes.fetch(:properties, [])
|
66
69
|
|
67
|
-
properties = attributes.fetch(:properties, [])
|
68
|
-
|
69
70
|
switchesValue = ""
|
70
|
-
|
71
|
+
|
71
72
|
properties.each do |prop|
|
72
73
|
switchesValue += " /property:#{prop}"
|
73
|
-
end
|
74
|
-
|
75
|
-
extraSwitches = attributes.fetch(:extraSwitches, [])
|
76
|
-
|
74
|
+
end
|
75
|
+
|
76
|
+
extraSwitches = attributes.fetch(:extraSwitches, [])
|
77
|
+
|
77
78
|
extraSwitches.each do |switch|
|
78
79
|
switchesValue += " /#{switch}"
|
79
|
-
end
|
80
|
-
|
80
|
+
end
|
81
|
+
|
81
82
|
targets = attributes.fetch(:targets, [])
|
82
83
|
targetsValue = ""
|
83
84
|
targets.each do |target|
|
data/lib/nuget.rb
CHANGED
@@ -1,25 +1,25 @@
|
|
1
|
+
# vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
|
1
2
|
module Nuget
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
File.join(Dir.glob(File.join(package_root,"#{package}.[0-9]*")).sort.last, "tools", tool)
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.package_root
|
11
|
-
root = nil
|
12
|
-
|
13
|
-
packroots = Dir.glob("{source,src}/packages")
|
3
|
+
def self.tool(package, tool)
|
4
|
+
nugetDir = Dir.glob(File.join(package_root,"#{package}*")).sort.last
|
5
|
+
return File.join(nugetDir, "tools", tool) if File.directory?(nugetDir)
|
14
6
|
|
15
|
-
|
7
|
+
File.join(Dir.glob(File.join(package_root,"#{package}.[0-9]*")).sort.last, "tools", tool)
|
8
|
+
end
|
16
9
|
|
17
|
-
|
18
|
-
|
19
|
-
FileUtils.mkdir_p(packroot)
|
20
|
-
root = packroot
|
21
|
-
end
|
10
|
+
def self.package_root
|
11
|
+
root = nil
|
22
12
|
|
23
|
-
|
24
|
-
|
13
|
+
packroots = Dir.glob("{source,src}/packages")
|
14
|
+
|
15
|
+
return packroots.last if packroots.length > 0
|
16
|
+
|
17
|
+
Dir.glob("{source,src}").each do |d|
|
18
|
+
packroot = File.join d, "packages"
|
19
|
+
FileUtils.mkdir_p(packroot)
|
20
|
+
root = packroot
|
21
|
+
end
|
22
|
+
|
23
|
+
root
|
24
|
+
end
|
25
25
|
end
|
data/lib/nunit.rb
CHANGED
@@ -1,101 +1,96 @@
|
|
1
|
+
# vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
|
1
2
|
module FubuRake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
tests = Array.new
|
7
|
-
|
8
|
-
if options[:unit_test_projects].any?
|
9
|
-
tests = options[:unit_test_projects]
|
10
|
-
elsif options[:unit_test_list_file] != nil and File::exists?(options[:unit_test_list_file])
|
11
|
-
file = options[:unit_test_list_file]
|
3
|
+
class NUnit
|
4
|
+
def self.create_task(tasks, options)
|
5
|
+
nunitTask = nil
|
12
6
|
|
13
|
-
|
14
|
-
|
15
|
-
else
|
16
|
-
# just find testing projects
|
17
|
-
Dir.glob('**/*.{Testing,Tests}.csproj').each do |f|
|
18
|
-
test = File.basename(f, ".csproj")
|
19
|
-
tests.push test
|
20
|
-
end
|
7
|
+
tests = Array.new
|
21
8
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
runner = NUnitRunner.new options
|
27
|
-
runner.executeTests tests
|
28
|
-
end
|
29
|
-
|
30
|
-
nunitTask.enhance [:compile]
|
31
|
-
nunitTask.add_description "Runs unit tests for " + tests.join(', ')
|
32
|
-
end
|
9
|
+
if options[:unit_test_projects].any?
|
10
|
+
tests = options[:unit_test_projects]
|
11
|
+
elsif options[:unit_test_list_file] != nil and File::exists?(options[:unit_test_list_file])
|
12
|
+
file = options[:unit_test_list_file]
|
33
13
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
14
|
+
tests = NUnitRunner.readFromFile(file)
|
15
|
+
|
16
|
+
else
|
17
|
+
# just find testing projects
|
18
|
+
Dir.glob('**/*.{Testing,Tests}.csproj').each do |f|
|
19
|
+
test = File.basename(f, ".csproj")
|
20
|
+
tests.push test
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
if !tests.empty?
|
25
|
+
nunitTask = Rake::Task.define_task :unit_test do
|
26
|
+
runner = NUnitRunner.new options
|
27
|
+
runner.executeTests tests
|
28
|
+
end
|
29
|
+
|
30
|
+
nunitTask.enhance [:compile]
|
31
|
+
nunitTask.add_description "Runs unit tests for " + tests.join(', ')
|
32
|
+
end
|
33
|
+
|
34
|
+
if tasks.integration_test != nil
|
35
|
+
integrationTask = Rake::Task.define_task :integration_test do
|
36
|
+
runner = NUnitRunner.new options
|
37
|
+
runner.executeTests tasks.integration_test
|
38
|
+
end
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
integrationTask.enhance [:compile]
|
41
|
+
integrationTask.add_description "integration tests: #{tasks.integration_test.join(', ')}"
|
42
|
+
end
|
43
|
+
end
|
43
44
|
end
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
class NUnitRunner
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
class NUnitRunner
|
49
49
|
include FileTest
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
51
|
+
def initialize(paths)
|
52
|
+
@sourceDir = paths.fetch(:source, 'src')
|
53
|
+
@resultsDir = paths.fetch(:results, 'results')
|
54
|
+
@compilePlatform = paths.fetch(:platform, '')
|
55
|
+
@compileTarget = paths.fetch(:compilemode, 'debug')
|
56
|
+
@clrversion = paths.fetch(:clrversion, 'v4.0.30319')
|
57
|
+
@nunitExe = Nuget.tool("NUnit", "nunit-console#{(@compilePlatform.empty? ? '' : "-#{@compilePlatform}")}.exe") + Platform.switch("nothread")
|
58
|
+
end
|
59
59
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
60
|
+
def executeTests(assemblies)
|
61
|
+
Dir.mkdir @resultsDir unless exists?(@resultsDir)
|
62
|
+
|
63
|
+
assemblies.each do |assem|
|
64
|
+
file = File.expand_path("#{@sourceDir}/#{assem}/bin/#{@compilePlatform.empty? ? '' : @compilePlatform + '/'}#{@compileTarget}/#{assem}.dll")
|
65
|
+
puts "The platform is #{@compilePlatform}"
|
66
|
+
sh Platform.runtime("#{@nunitExe} -noshadow -xml=#{@resultsDir}/#{assem}-TestResults.xml \"#{file}\"", @clrversion)
|
67
|
+
end
|
67
68
|
end
|
68
|
-
end
|
69
69
|
|
70
|
-
|
71
|
-
|
70
|
+
def self.readFromFile(file)
|
71
|
+
tests = Array.new
|
72
72
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
73
|
+
file = File.new(file, "r")
|
74
|
+
assemblies = file.readlines()
|
75
|
+
assemblies.each do |a|
|
76
|
+
test = a.gsub("\r\n", "").gsub("\n", "")
|
77
|
+
tests.push(test)
|
78
|
+
end
|
79
|
+
file.close
|
80
|
+
|
81
|
+
return tests
|
82
|
+
end
|
83
83
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
84
|
+
def executeTestsInFile(file)
|
85
|
+
if !File.exist?(file)
|
86
|
+
throw "File #{file} does not exist"
|
87
|
+
end
|
88
|
+
|
89
|
+
tests = readFromFile(file)
|
90
|
+
|
91
|
+
if (!tests.empty?)
|
92
|
+
executeTests tests
|
93
|
+
end
|
94
|
+
end
|
94
95
|
end
|
95
|
-
end
|
96
|
-
|
97
|
-
|
98
96
|
end
|
99
|
-
|
100
|
-
|
101
|
-
|
data/lib/platform.rb
CHANGED
@@ -1,20 +1,53 @@
|
|
1
|
+
# vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
|
1
2
|
module Platform
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
4
|
+
def self.is_nix
|
5
|
+
!RUBY_PLATFORM.match("linux|darwin").nil?
|
6
|
+
end
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
command = "mono --runtime=#{runtime} #{cmd}"
|
11
|
-
end
|
12
|
-
command
|
13
|
-
end
|
8
|
+
def self.is_linux
|
9
|
+
!RUBY_PLATFORM.match("linux").nil?
|
10
|
+
end
|
14
11
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
12
|
+
def self.is_darwin
|
13
|
+
!RUBY_PLATFORM.match("darwin").nil?
|
14
|
+
end
|
19
15
|
|
20
|
-
|
16
|
+
def self.open(path)
|
17
|
+
command = "start #{path}"
|
18
|
+
if self.is_linux
|
19
|
+
command = "xdg-open #{path}"
|
20
|
+
elsif self.is_darwin
|
21
|
+
command = "open #{path}"
|
22
|
+
end
|
23
|
+
sh command
|
24
|
+
end
|
25
|
+
|
26
|
+
#http://src.chromium.org/chrome/trunk/deps/third_party/xdg-utils/scripts/xdg-terminal
|
27
|
+
# #https://github.com/ssokolow/profile/blob/master/supplemental/xdg-terminal
|
28
|
+
# #http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true
|
29
|
+
#
|
30
|
+
def self.start(command)
|
31
|
+
if self.is_linux
|
32
|
+
command = "xterm -e '#{command}'"
|
33
|
+
elsif self.is_darmin
|
34
|
+
command = "Terminal -e '#{command}'"
|
35
|
+
else
|
36
|
+
command = "start '#{command}'"
|
37
|
+
end
|
38
|
+
sh command
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.runtime(cmd, runtime='v4.0.30319')
|
42
|
+
command = cmd
|
43
|
+
if self.is_nix
|
44
|
+
command = "mono --runtime=#{runtime} #{cmd}"
|
45
|
+
end
|
46
|
+
command
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.switch(arg)
|
50
|
+
sw = self.is_nix ? " -" : " /"
|
51
|
+
sw + arg
|
52
|
+
end
|
53
|
+
end
|
data/lib/ripple.rb
CHANGED
@@ -1,38 +1,39 @@
|
|
1
|
+
# vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
|
1
2
|
module FubuRake
|
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
|
-
|
33
|
-
|
34
|
-
|
3
|
+
class Ripple
|
4
|
+
def self.create(tasks, options)
|
5
|
+
if !tasks.ripple_enabled
|
6
|
+
return
|
7
|
+
end
|
8
|
+
|
9
|
+
tasks.clean << 'artifacts'
|
10
|
+
|
11
|
+
restoreTask = Rake::Task.define_task 'ripple:restore' do
|
12
|
+
puts 'Restoring all the nuget package files'
|
13
|
+
sh 'ripple restore'
|
14
|
+
end
|
15
|
+
restoreTask.add_description "Restores nuget package files and updates all floating nugets"
|
16
|
+
|
17
|
+
updateTask = Rake::Task.define_task 'ripple:update' do
|
18
|
+
puts 'Cleaning out existing packages out of paranoia'
|
19
|
+
sh 'ripple clean'
|
20
|
+
|
21
|
+
puts 'Updating all the nuget package files'
|
22
|
+
sh 'ripple update'
|
23
|
+
end
|
24
|
+
updateTask.add_description "Updates nuget package files to the latest"
|
25
|
+
|
26
|
+
|
27
|
+
historyTask = Rake::Task.define_task 'ripple:history' do
|
28
|
+
sh 'ripple history'
|
29
|
+
end
|
30
|
+
historyTask.add_description "creates a history file for nuget dependencies"
|
31
|
+
|
32
|
+
packageTask = Rake::Task.define_task 'ripple:package' do
|
33
|
+
sh "ripple local-nuget --version #{options[:build_number]} --destination artifacts"
|
34
|
+
end
|
35
|
+
packageTask.add_description "packages the nuget files from the nuspec files in packaging/nuget and publishes to /artifacts"
|
36
|
+
end
|
35
37
|
end
|
36
|
-
end
|
37
38
|
end
|
38
39
|
|