rake-funnel 0.22.0 → 0.24.0
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 +4 -4
- data/CHANGELOG.md +21 -0
- data/Gemfile +4 -2
- data/README.md +2 -2
- data/lib/rake/funnel.rb +2 -0
- data/lib/rake/funnel/ambiguous_file_error.rb +3 -0
- data/lib/rake/funnel/execution_error.rb +2 -0
- data/lib/rake/funnel/extensions/case.rb +2 -0
- data/lib/rake/funnel/extensions/case/camel_case.rb +2 -0
- data/lib/rake/funnel/extensions/case/pascal_case.rb +2 -0
- data/lib/rake/funnel/extensions/common_path.rb +3 -0
- data/lib/rake/funnel/extensions/disable_colors.rb +2 -0
- data/lib/rake/funnel/extensions/rexml.rb +4 -2
- data/lib/rake/funnel/extensions/shell.rb +6 -4
- data/lib/rake/funnel/framework.rb +2 -0
- data/lib/rake/funnel/integration/progress_report.rb +11 -8
- data/lib/rake/funnel/integration/sync_output.rb +4 -2
- data/lib/rake/funnel/integration/teamcity.rb +2 -0
- data/lib/rake/funnel/integration/teamcity/nunit_plugin.rb +5 -3
- data/lib/rake/funnel/integration/teamcity/progress_report.rb +2 -0
- data/lib/rake/funnel/integration/teamcity/service_messages.rb +4 -1
- data/lib/rake/funnel/integration/teamcity/teamcity.rb +3 -0
- data/lib/rake/funnel/support/argument_mapper/key_value_pair.rb +2 -0
- data/lib/rake/funnel/support/argument_mapper/styles.rb +2 -0
- data/lib/rake/funnel/support/argument_mapper/styles/default.rb +2 -0
- data/lib/rake/funnel/support/argument_mapper/styles/msbuild.rb +2 -0
- data/lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb +4 -1
- data/lib/rake/funnel/support/argument_mapper/styles/nunit.rb +2 -0
- data/lib/rake/funnel/support/argument_mapper/switch.rb +2 -0
- data/lib/rake/funnel/support/argument_mapper/value.rb +2 -0
- data/lib/rake/funnel/support/assembly_version/from_version_files.rb +3 -1
- data/lib/rake/funnel/support/assembly_version_writer.rb +3 -1
- data/lib/rake/funnel/support/binary_version_reader.rb +2 -0
- data/lib/rake/funnel/support/copier.rb +2 -0
- data/lib/rake/funnel/support/environments.rb +2 -0
- data/lib/rake/funnel/support/environments/loader.rb +5 -4
- data/lib/rake/funnel/support/internal/finder.rb +2 -0
- data/lib/rake/funnel/support/internal/instantiate_symbol.rb +2 -0
- data/lib/rake/funnel/support/mapper.rb +4 -0
- data/lib/rake/funnel/support/mono.rb +2 -0
- data/lib/rake/funnel/support/msbuild.rb +2 -0
- data/lib/rake/funnel/support/msbuild/build_tool.rb +6 -4
- data/lib/rake/funnel/support/msdeploy.rb +2 -0
- data/lib/rake/funnel/support/msdeploy/registry_patch.rb +1 -1
- data/lib/rake/funnel/support/patch.rb +4 -0
- data/lib/rake/funnel/support/specs_remover.rb +3 -1
- data/lib/rake/funnel/support/template_engine.rb +12 -1
- data/lib/rake/funnel/support/timing.rb +2 -0
- data/lib/rake/funnel/support/timing/report.rb +13 -11
- data/lib/rake/funnel/support/timing/statistics.rb +2 -0
- data/lib/rake/funnel/support/trace.rb +3 -1
- data/lib/rake/funnel/support/version_info.rb +5 -0
- data/lib/rake/funnel/support/which.rb +2 -0
- data/lib/rake/funnel/support/zipper.rb +2 -0
- data/lib/rake/funnel/tasks/assembly_version.rb +2 -0
- data/lib/rake/funnel/tasks/bin_path.rb +4 -2
- data/lib/rake/funnel/tasks/copy.rb +2 -0
- data/lib/rake/funnel/tasks/environments.rb +2 -0
- data/lib/rake/funnel/tasks/msbuild.rb +4 -2
- data/lib/rake/funnel/tasks/msdeploy.rb +3 -0
- data/lib/rake/funnel/tasks/nunit.rb +2 -0
- data/lib/rake/funnel/tasks/paket.rb +2 -0
- data/lib/rake/funnel/tasks/quick_template.rb +3 -1
- data/lib/rake/funnel/tasks/side_by_side_specs.rb +2 -0
- data/lib/rake/funnel/tasks/timing.rb +10 -8
- data/lib/rake/funnel/tasks/zip.rb +4 -2
- data/lib/rake/funnel/version.rb +3 -1
- data/rake-funnel.gemspec +5 -3
- data/spec/rake/funnel/execution_error_spec.rb +2 -0
- data/spec/rake/funnel/extensions/case/camel_case_spec.rb +2 -0
- data/spec/rake/funnel/extensions/case/pascal_case_spec.rb +2 -0
- data/spec/rake/funnel/extensions/common_path_spec.rb +2 -0
- data/spec/rake/funnel/extensions/disable_colors_spec.rb +2 -0
- data/spec/rake/funnel/extensions/rexml_spec.rb +9 -7
- data/spec/rake/funnel/extensions/shell_spec.rb +15 -14
- data/spec/rake/funnel/integration/progress_report_spec.rb +7 -4
- data/spec/rake/funnel/integration/sync_output_spec.rb +5 -3
- data/spec/rake/funnel/integration/teamcity/nunit_plugin_spec.rb +11 -9
- data/spec/rake/funnel/integration/teamcity/progress_report_spec.rb +2 -0
- data/spec/rake/funnel/integration/teamcity/service_messages_spec.rb +55 -53
- data/spec/rake/funnel/integration/teamcity/teamcity_spec.rb +2 -0
- data/spec/rake/funnel/support/argument_mapper/styles/msdeploy_spec.rb +2 -0
- data/spec/rake/funnel/support/argument_mapper/styles/nunit_spec.rb +2 -0
- data/spec/rake/funnel/support/argument_mapper/styles/styles_spec.rb +2 -0
- data/spec/rake/funnel/support/assembly_version/from_version_files_spec.rb +3 -1
- data/spec/rake/funnel/support/assembly_version_writer_spec.rb +3 -1
- data/spec/rake/funnel/support/binary_version_reader_spec.rb +2 -0
- data/spec/rake/funnel/support/copier_spec.rb +2 -0
- data/spec/rake/funnel/support/environments/loader_spec.rb +3 -1
- data/spec/rake/funnel/support/internal/finder_spec.rb +3 -0
- data/spec/rake/funnel/support/internal/instantiate_symbol_spec.rb +2 -0
- data/spec/rake/funnel/support/mapper_spec.rb +2 -0
- data/spec/rake/funnel/support/mono_spec.rb +2 -0
- data/spec/rake/funnel/support/msbuild/build_tool_spec.rb +6 -4
- data/spec/rake/funnel/support/msdeploy/registry_patch_spec.rb +4 -4
- data/spec/rake/funnel/support/patch_spec.rb +11 -9
- data/spec/rake/funnel/support/specs_remover/project/paket.references +1 -1
- data/spec/rake/funnel/support/specs_remover_spec.rb +2 -0
- data/spec/rake/funnel/support/template_engine_spec.rb +2 -0
- data/spec/rake/funnel/support/timing/report_spec.rb +16 -14
- data/spec/rake/funnel/support/trace_spec.rb +5 -3
- data/spec/rake/funnel/support/version_info_spec.rb +2 -0
- data/spec/rake/funnel/support/which_spec.rb +2 -0
- data/spec/rake/funnel/support/zipper_spec.rb +2 -0
- data/spec/rake/funnel/tasks/assembly_version_spec.rb +2 -0
- data/spec/rake/funnel/tasks/bin_path_spec.rb +6 -4
- data/spec/rake/funnel/tasks/copy_spec.rb +2 -0
- data/spec/rake/funnel/tasks/environments_spec.rb +2 -0
- data/spec/rake/funnel/tasks/msbuild_spec.rb +2 -0
- data/spec/rake/funnel/tasks/msdeploy_spec.rb +2 -0
- data/spec/rake/funnel/tasks/nunit_spec.rb +2 -0
- data/spec/rake/funnel/tasks/paket_spec.rb +2 -0
- data/spec/rake/funnel/tasks/quick_template_spec.rb +4 -2
- data/spec/rake/funnel/tasks/side_by_side_specs_spec.rb +2 -0
- data/spec/rake/funnel/tasks/timing_spec.rb +9 -9
- data/spec/rake/funnel/tasks/zip_spec.rb +5 -3
- data/spec/spec_helper.rb +2 -0
- metadata +18 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4cecd55f933fca2c61e35adfe6bd550e5a0c3c8dbb932208a3f6498511bc7998
|
|
4
|
+
data.tar.gz: c052b41fb1fa1ae8d74b6f6a04731cb3508006555f6d9779d9b15979023ec425
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b8ba97a294274e61e52921b729905401432e5e2b697d80d0c00a7bca488dd90e57dad7c9749afc2231e973d103ef93ece71d4a9734a32c7a793febab84f2d383
|
|
7
|
+
data.tar.gz: c2ab4ab69a5c344d5b16f902cd870bdb8525a0165afa84d75e575426ec6b6160f13e792613cc57478fcbc4f4c101f0d68312765dcc8b6b425bd1feddd2633f35
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
# 0.24.0 / 2021-01-04
|
|
2
|
+
|
|
3
|
+
* [FEATURE] Support paket.references with whitespace in front of package names,
|
|
4
|
+
i.e. grouped packages.
|
|
5
|
+
|
|
6
|
+
# 0.23.0 / 2020-02-29
|
|
7
|
+
|
|
8
|
+
* [FEATURE] Support rake < 14.
|
|
9
|
+
|
|
10
|
+
# 0.22.3 / 2019-01-08
|
|
11
|
+
|
|
12
|
+
* [BUGFIX] Support Ruby 2.6.0's ERB initializer.
|
|
13
|
+
|
|
14
|
+
# 0.22.2 / 2018-05-28
|
|
15
|
+
|
|
16
|
+
* [BUGFIX] Write output using atomic `print`.
|
|
17
|
+
|
|
18
|
+
# 0.22.1 / 2018-05-28
|
|
19
|
+
|
|
20
|
+
* [BUGFIX] Fix a bug with overridden methods from rake.
|
|
21
|
+
|
|
1
22
|
# 0.22.0 / 2018-05-05
|
|
2
23
|
|
|
3
24
|
* [FEATURE] Support [vswhere](https://github.com/Microsoft/vswhere) to locate
|
data/Gemfile
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gemspec
|
|
@@ -9,7 +11,7 @@ group :coverage do
|
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
group :style do
|
|
12
|
-
gem 'rubocop', '
|
|
14
|
+
gem 'rubocop', '< 0.50'
|
|
13
15
|
gem 'rubocop-rspec'
|
|
14
16
|
end
|
|
15
17
|
|
|
@@ -19,7 +21,7 @@ group :test do
|
|
|
19
21
|
gem 'rspec-its'
|
|
20
22
|
end
|
|
21
23
|
|
|
22
|
-
group :
|
|
24
|
+
group :guard do
|
|
23
25
|
gem 'guard-bundler'
|
|
24
26
|
gem 'guard-rspec'
|
|
25
27
|
gem 'guard-rubocop'
|
data/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# rake-funnel
|
|
2
2
|
|
|
3
|
-
[](http://badge.fury.io/rb/rake-funnel) [](http://badge.fury.io/rb/rake-funnel) [](https://travis-ci.org/agross/rake-funnel) [](https://codeclimate.com/github/agross/rake-funnel) [](https://coveralls.io/r/agross/rake-funnel)
|
|
4
4
|
|
|
5
5
|
rake-funnel is my set of rake tasks, mostly targeted at .NET development.
|
|
6
6
|
|
|
7
|
-
* Tested against Ruby 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0 and ruby-head
|
|
7
|
+
* Tested against Ruby 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0, 2.5.0, 2.6.0, 2.7.0 and ruby-head
|
|
8
8
|
* Ruby < 2.0 is not supported
|
|
9
9
|
|
|
10
10
|
## Installation
|
data/lib/rake/funnel.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Rake
|
|
2
4
|
module Funnel
|
|
3
5
|
class AmbiguousFileError < StandardError
|
|
@@ -33,6 +35,7 @@ module Rake
|
|
|
33
35
|
|
|
34
36
|
def inspect_candidates
|
|
35
37
|
return if (candidates || []).empty?
|
|
38
|
+
|
|
36
39
|
['Candidates:', candidates.map { |c| " - #{c}" }]
|
|
37
40
|
end
|
|
38
41
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'rexml/document'
|
|
2
4
|
|
|
3
5
|
module Rake
|
|
@@ -6,11 +8,11 @@ module Rake
|
|
|
6
8
|
module REXML
|
|
7
9
|
module Functions
|
|
8
10
|
def lower_case(string)
|
|
9
|
-
string.
|
|
11
|
+
string(string).downcase
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
def matches(string, test)
|
|
13
|
-
File.fnmatch?(test, string
|
|
15
|
+
File.fnmatch?(test, string(string), File::FNM_CASEFOLD)
|
|
14
16
|
end
|
|
15
17
|
end
|
|
16
18
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'rake'
|
|
2
4
|
require 'open3'
|
|
3
5
|
require 'smart_colored/extend'
|
|
@@ -20,10 +22,10 @@ module Rake
|
|
|
20
22
|
|
|
21
23
|
private
|
|
22
24
|
|
|
23
|
-
def run(cmd, log_file, error_lines)
|
|
25
|
+
def run(cmd, log_file, error_lines) # rubocop:disable Metrics/AbcSize
|
|
24
26
|
cmd, readable_cmd = normalize(cmd)
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
$stderr.print(readable_cmd + "\n")
|
|
27
29
|
|
|
28
30
|
Open3.popen2e(*cmd) do |_, stdout_and_stderr, wait_thread|
|
|
29
31
|
log, error_logged = log_output(stdout_and_stderr, log_file, error_lines)
|
|
@@ -70,14 +72,14 @@ module Rake
|
|
|
70
72
|
end
|
|
71
73
|
|
|
72
74
|
def to_stdout(line)
|
|
73
|
-
$stdout.
|
|
75
|
+
$stdout.print(line.rstrip.green + "\n")
|
|
74
76
|
:success
|
|
75
77
|
end
|
|
76
78
|
|
|
77
79
|
def to_stderr(line, error_lines)
|
|
78
80
|
return unless error_lines && line =~ error_lines
|
|
79
81
|
|
|
80
|
-
|
|
82
|
+
$stderr.print(line.rstrip.bold.red + "\n")
|
|
81
83
|
:error
|
|
82
84
|
end
|
|
83
85
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'rake'
|
|
2
4
|
|
|
3
5
|
module Rake
|
|
@@ -8,7 +10,8 @@ module Rake
|
|
|
8
10
|
|
|
9
11
|
def initialize
|
|
10
12
|
task_starting do |task, _args|
|
|
11
|
-
|
|
13
|
+
name = "[#{task.name}]".bold.cyan
|
|
14
|
+
print "\n#{name}\n" unless Rake::Funnel::Integration::TeamCity.running?
|
|
12
15
|
end
|
|
13
16
|
|
|
14
17
|
yield self if block_given?
|
|
@@ -40,16 +43,16 @@ module Rake
|
|
|
40
43
|
Rake::Task.class_eval do
|
|
41
44
|
old_execute = instance_method(:execute)
|
|
42
45
|
|
|
43
|
-
define_method(:execute) do
|
|
44
|
-
context.starting.call(self, args) if context.starting
|
|
46
|
+
define_method(:execute) do |*args|
|
|
47
|
+
context.starting.call(self, *args) if context.starting
|
|
45
48
|
|
|
46
49
|
error = nil
|
|
47
50
|
begin
|
|
48
|
-
old_execute.bind(self).call(args)
|
|
49
|
-
rescue => e
|
|
51
|
+
old_execute.bind(self).call(*args)
|
|
52
|
+
rescue => e
|
|
50
53
|
error = e
|
|
51
54
|
ensure
|
|
52
|
-
context.finished.call(self, args, error) if context.finished
|
|
55
|
+
context.finished.call(self, *args, error) if context.finished
|
|
53
56
|
raise error if error
|
|
54
57
|
end
|
|
55
58
|
end
|
|
@@ -60,8 +63,8 @@ module Rake
|
|
|
60
63
|
|
|
61
64
|
p.reset do |memo|
|
|
62
65
|
Rake::Task.class_eval do
|
|
63
|
-
define_method(:execute) do
|
|
64
|
-
memo.bind(self).call(args)
|
|
66
|
+
define_method(:execute) do |*args|
|
|
67
|
+
memo.bind(self).call(*args)
|
|
65
68
|
end
|
|
66
69
|
end
|
|
67
70
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Rake
|
|
2
4
|
module Funnel
|
|
3
5
|
module Integration
|
|
@@ -11,8 +13,8 @@ module Rake
|
|
|
11
13
|
|
|
12
14
|
def sync(stream)
|
|
13
15
|
stream.sync = true
|
|
14
|
-
rescue => e
|
|
15
|
-
|
|
16
|
+
rescue => e
|
|
17
|
+
$stderr.print "Failed to set up sync output #{e}\n"
|
|
16
18
|
end
|
|
17
19
|
end
|
|
18
20
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Rake
|
|
2
4
|
module Funnel
|
|
3
5
|
module Integration
|
|
@@ -28,7 +30,7 @@ module Rake
|
|
|
28
30
|
version = Rake::Funnel::Support::BinaryVersionReader.read_from(nunit)
|
|
29
31
|
|
|
30
32
|
unless version.file_version
|
|
31
|
-
|
|
33
|
+
$stderr.print("Could read version from NUnit executable in #{nunit}\n")
|
|
32
34
|
return
|
|
33
35
|
end
|
|
34
36
|
|
|
@@ -39,7 +41,7 @@ module Rake
|
|
|
39
41
|
addin_files = Dir.glob("#{addins}-#{version}.*")
|
|
40
42
|
|
|
41
43
|
if addin_files.none?
|
|
42
|
-
|
|
44
|
+
$stderr.print("Could not find TeamCity NUnit addin for version #{version} in #{addins}\n")
|
|
43
45
|
return
|
|
44
46
|
end
|
|
45
47
|
|
|
@@ -47,7 +49,7 @@ module Rake
|
|
|
47
49
|
end
|
|
48
50
|
|
|
49
51
|
def copy_addin_files(nunit, addin_files, version)
|
|
50
|
-
|
|
52
|
+
$stderr.print("Installing TeamCity NUnit addin for version #{version} in #{nunit}\n")
|
|
51
53
|
|
|
52
54
|
destination = File.join(File.dirname(nunit), 'addins')
|
|
53
55
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Rake
|
|
2
4
|
module Funnel
|
|
3
5
|
module Integration
|
|
@@ -21,7 +23,7 @@ module Rake
|
|
|
21
23
|
args = [message_name] << escaped_array_of(args)
|
|
22
24
|
args = args.flatten.reject(&:nil?)
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
print "##teamcity[#{args.join(' ')}]\n"
|
|
25
27
|
end
|
|
26
28
|
|
|
27
29
|
def escape(string) # rubocop:disable Metrics/MethodLength
|
|
@@ -42,6 +44,7 @@ module Rake
|
|
|
42
44
|
return [] if args.nil?
|
|
43
45
|
|
|
44
46
|
return "'#{escape(args)}'" unless args.is_a?(Hash)
|
|
47
|
+
|
|
45
48
|
args.map { |key, value| "#{key.camelize}='#{escape(value.to_s)}'" }
|
|
46
49
|
end
|
|
47
50
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Rake
|
|
2
4
|
module Funnel
|
|
3
5
|
module Support
|
|
@@ -45,7 +47,8 @@ module Rake
|
|
|
45
47
|
|
|
46
48
|
def quote(value)
|
|
47
49
|
value = value.gsub(/"/, '""') if value.is_a?(String)
|
|
48
|
-
return %("#{value}") if value =~ /\s/
|
|
50
|
+
return %("#{value}") if value.to_s =~ /\s/
|
|
51
|
+
|
|
49
52
|
value
|
|
50
53
|
end
|
|
51
54
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Rake
|
|
2
4
|
module Funnel
|
|
3
5
|
module Support
|
|
@@ -17,7 +19,7 @@ module Rake
|
|
|
17
19
|
block_given? || (return enum_for(__method__))
|
|
18
20
|
|
|
19
21
|
files.each do |file|
|
|
20
|
-
|
|
22
|
+
$stderr.print("Reading #{file}\n")
|
|
21
23
|
|
|
22
24
|
version_info = VersionInfo.parse(
|
|
23
25
|
version: VersionInfo.read_version_from(file),
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'erb'
|
|
2
4
|
|
|
3
5
|
Dir[File.join(File.dirname(__FILE__), 'assembly_version', '*.rb')].each do |path|
|
|
@@ -25,7 +27,7 @@ module Rake
|
|
|
25
27
|
|
|
26
28
|
contents = evaluate_erb(language, version_info, target)
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
$stderr.print("Writing #{target}\n")
|
|
29
31
|
File.write(target, contents)
|
|
30
32
|
end
|
|
31
33
|
end
|