puppetlabs_spec_helper 2.15.0 → 4.0.1
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/.github/dependabot.yml +15 -0
- data/.rubocop.yml +19 -6
- data/.rubocop_todo.yml +18 -18
- data/.travis.yml +8 -18
- data/CHANGELOG.md +71 -3
- data/Gemfile +9 -13
- data/HISTORY.md +1 -1
- data/README.md +6 -2
- data/Rakefile +1 -1
- data/lib/puppetlabs_spec_helper/module_spec_helper.rb +11 -0
- data/lib/puppetlabs_spec_helper/puppet_spec_helper.rb +4 -2
- data/lib/puppetlabs_spec_helper/puppetlabs_spec/files.rb +2 -0
- data/lib/puppetlabs_spec_helper/puppetlabs_spec/fixtures.rb +7 -2
- data/lib/puppetlabs_spec_helper/puppetlabs_spec/matchers.rb +4 -2
- data/lib/puppetlabs_spec_helper/puppetlabs_spec/puppet_internals.rb +5 -2
- data/lib/puppetlabs_spec_helper/puppetlabs_spec_helper.rb +2 -0
- data/lib/puppetlabs_spec_helper/rake_tasks.rb +69 -94
- data/lib/puppetlabs_spec_helper/tasks/check_symlinks.rb +4 -1
- data/lib/puppetlabs_spec_helper/tasks/fixtures.rb +31 -15
- data/lib/puppetlabs_spec_helper/version.rb +3 -1
- data/puppet_spec_helper.rb +2 -0
- data/puppetlabs_spec_helper.gemspec +6 -5
- data/puppetlabs_spec_helper.rb +2 -0
- metadata +43 -52
- data/lib/puppetlabs_spec_helper/tasks/beaker.rb +0 -112
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rspec-puppet'
|
2
4
|
require 'puppetlabs_spec_helper/puppet_spec_helper'
|
3
5
|
require 'puppetlabs_spec_helper/puppetlabs_spec/puppet_internals'
|
@@ -50,6 +52,15 @@ if ENV['SIMPLECOV'] == 'yes'
|
|
50
52
|
end
|
51
53
|
end
|
52
54
|
|
55
|
+
# Add all spec lib dirs to LOAD_PATH
|
56
|
+
components = module_path.split(File::PATH_SEPARATOR).collect do |dir|
|
57
|
+
next unless Dir.exist? dir
|
58
|
+
Dir.entries(dir).reject { |f| f =~ %r{^\.} }.collect { |f| File.join(dir, f, 'spec', 'lib') }
|
59
|
+
end
|
60
|
+
components.flatten.each do |d|
|
61
|
+
$LOAD_PATH << d if FileTest.directory?(d) && !$LOAD_PATH.include?(d)
|
62
|
+
end
|
63
|
+
|
53
64
|
RSpec.configure do |c|
|
54
65
|
c.environmentpath = spec_path if Puppet.version.to_f >= 4.0
|
55
66
|
c.module_path = module_path
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppetlabs_spec_helper/puppetlabs_spec_helper'
|
2
4
|
|
3
5
|
# Don't want puppet getting the command line arguments for rake or autotest
|
@@ -45,7 +47,7 @@ require 'puppetlabs_spec_helper/puppetlabs_spec/files'
|
|
45
47
|
# to compatibility mode for older versions of puppet.
|
46
48
|
begin
|
47
49
|
require 'puppet/test/test_helper'
|
48
|
-
rescue LoadError
|
50
|
+
rescue LoadError
|
49
51
|
end
|
50
52
|
|
51
53
|
# This is just a utility class to allow us to isolate the various version-specific
|
@@ -58,7 +60,7 @@ module Puppet
|
|
58
60
|
# Puppet's Settings singleton object, and other fun implementation details
|
59
61
|
# that code external to puppet should really never know about.
|
60
62
|
def self.initialize_via_fallback_compatibility(config)
|
61
|
-
|
63
|
+
warn('Warning: you appear to be using an older version of puppet; spec_helper will use fallback compatibility mode.')
|
62
64
|
config.before :all do
|
63
65
|
# nothing to do for now
|
64
66
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This module provides some helper methods to assist with fixtures. It's
|
2
4
|
# methods are designed to help when you have a conforming fixture layout so we
|
3
5
|
# get project consistency.
|
@@ -14,6 +16,7 @@ module PuppetlabsSpec::Fixtures
|
|
14
16
|
callers = caller
|
15
17
|
while line = callers.shift
|
16
18
|
next unless found = line.match(%r{/spec/(.*)_spec\.rb:})
|
19
|
+
|
17
20
|
return fixtures(found[1])
|
18
21
|
end
|
19
22
|
raise "sorry, I couldn't work out your path from the caller stack!"
|
@@ -26,6 +29,7 @@ module PuppetlabsSpec::Fixtures
|
|
26
29
|
unless File.readable? file
|
27
30
|
raise "fixture '#{name}' for #{my_fixture_dir} is not readable"
|
28
31
|
end
|
32
|
+
|
29
33
|
file
|
30
34
|
end
|
31
35
|
|
@@ -37,12 +41,13 @@ module PuppetlabsSpec::Fixtures
|
|
37
41
|
|
38
42
|
# Provides a block mechanism for iterating across the files in your fixture
|
39
43
|
# area.
|
40
|
-
def my_fixtures(glob = '*', flags = 0)
|
44
|
+
def my_fixtures(glob = '*', flags = 0, &block)
|
41
45
|
files = Dir.glob(File.join(my_fixture_dir, glob), flags)
|
42
46
|
if files.empty?
|
43
47
|
raise "fixture '#{glob}' for #{my_fixture_dir} had no files!"
|
44
48
|
end
|
45
|
-
|
49
|
+
|
50
|
+
block_given? && files.each(&block)
|
46
51
|
files
|
47
52
|
end
|
48
53
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'stringio'
|
2
4
|
require 'rspec/expectations'
|
3
5
|
|
@@ -6,8 +8,8 @@ require 'rspec/expectations'
|
|
6
8
|
module RSpec
|
7
9
|
module Matchers
|
8
10
|
module BlockAliases
|
9
|
-
if method_defined? :
|
10
|
-
alias to should
|
11
|
+
if method_defined?(:should) && !method_defined?(:to)
|
12
|
+
alias to should
|
11
13
|
end
|
12
14
|
if method_defined? :should_not
|
13
15
|
alias to_not should_not unless method_defined? :to_not
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Initialize puppet for testing by loading the
|
2
4
|
# 'puppetlabs_spec_helper/puppet_spec_helper' library
|
3
5
|
require 'puppetlabs_spec_helper/puppet_spec_helper'
|
@@ -10,7 +12,7 @@ module PuppetlabsSpec
|
|
10
12
|
def scope(parts = {})
|
11
13
|
RSpec.deprecate('scope', replacement: 'rspec-puppet 2.2.0 provides a scope property')
|
12
14
|
|
13
|
-
if
|
15
|
+
if %r{^2\.[67]}.match?(Puppet.version)
|
14
16
|
# loadall should only be necessary prior to 3.x
|
15
17
|
# Please note, loadall needs to happen first when creating a scope, otherwise
|
16
18
|
# you might receive undefined method `function_*' errors
|
@@ -21,7 +23,7 @@ module PuppetlabsSpec
|
|
21
23
|
scope_parent = parts[:parent] || scope_compiler.topscope
|
22
24
|
scope_resource = parts[:resource] || resource(type: :node, title: scope_compiler.node.name)
|
23
25
|
|
24
|
-
scope = if
|
26
|
+
scope = if %r{^2\.[67]}.match?(Puppet.version)
|
25
27
|
Puppet::Parser::Scope.new(compiler: scope_compiler)
|
26
28
|
else
|
27
29
|
Puppet::Parser::Scope.new(scope_compiler)
|
@@ -67,6 +69,7 @@ module PuppetlabsSpec
|
|
67
69
|
# exists. This is a hack, but at least it's a hidden hack and not an
|
68
70
|
# exposed hack.
|
69
71
|
return nil unless Puppet::Parser::Functions.function(name)
|
72
|
+
|
70
73
|
scope.method("function_#{name}".intern)
|
71
74
|
end
|
72
75
|
module_function :function_method
|
@@ -1,10 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'fileutils'
|
2
4
|
require 'rake'
|
3
5
|
require 'rspec/core/rake_task'
|
4
6
|
require 'tmpdir'
|
5
7
|
require 'pathname'
|
6
8
|
require 'puppetlabs_spec_helper/version'
|
7
|
-
require 'puppetlabs_spec_helper/tasks/beaker'
|
8
9
|
require 'puppetlabs_spec_helper/tasks/fixtures'
|
9
10
|
require 'puppetlabs_spec_helper/tasks/check_symlinks'
|
10
11
|
require 'English'
|
@@ -53,6 +54,7 @@ RSpec::Core::RakeTask.new(:spec_standalone) do |t, args|
|
|
53
54
|
ci_total = ENV['CI_NODE_TOTAL'].to_i
|
54
55
|
ci_index = ENV['CI_NODE_INDEX'].to_i
|
55
56
|
raise "CI_NODE_INDEX must be between 1-#{ci_total}" unless ci_index >= 1 && ci_index <= ci_total
|
57
|
+
|
56
58
|
files = Rake::FileList[pattern].to_a
|
57
59
|
per_node = (files.size / ci_total.to_f).ceil
|
58
60
|
t.pattern = if args.extras.nil? || args.extras.empty?
|
@@ -108,16 +110,17 @@ end
|
|
108
110
|
desc 'Parallel spec tests'
|
109
111
|
task :parallel_spec_standalone do |_t, args|
|
110
112
|
raise 'Add the parallel_tests gem to Gemfile to enable this task' unless parallel_tests_loaded
|
113
|
+
|
111
114
|
if Rake::FileList[pattern].to_a.empty?
|
112
115
|
warn 'No files for parallel_spec to run against'
|
113
116
|
else
|
114
|
-
begin
|
115
|
-
args = ['-t', 'rspec']
|
116
|
-
args.push('--').concat(ENV['CI_SPEC_OPTIONS'].strip.split(' ')).push('--') unless ENV['CI_SPEC_OPTIONS'].nil? || ENV['CI_SPEC_OPTIONS'].strip.empty?
|
117
|
-
args.concat(Rake::FileList[pattern].to_a)
|
118
117
|
|
119
|
-
|
120
|
-
|
118
|
+
args = ['-t', 'rspec']
|
119
|
+
args.push('--').concat(ENV['CI_SPEC_OPTIONS'].strip.split(' ')).push('--') unless ENV['CI_SPEC_OPTIONS'].nil? || ENV['CI_SPEC_OPTIONS'].strip.empty?
|
120
|
+
args.concat(Rake::FileList[pattern].to_a)
|
121
|
+
|
122
|
+
ParallelTests::CLI.new.run(args)
|
123
|
+
|
121
124
|
end
|
122
125
|
end
|
123
126
|
|
@@ -145,12 +148,12 @@ namespace :build do
|
|
145
148
|
require 'pdk/util'
|
146
149
|
require 'pdk/module/build'
|
147
150
|
|
148
|
-
path = PDK::Module::Build.invoke(:
|
151
|
+
path = PDK::Module::Build.invoke(force: true, 'target-dir': File.join(Dir.pwd, 'pkg'))
|
149
152
|
puts "Module built: #{path}"
|
150
153
|
rescue LoadError
|
151
154
|
_ = `pdk --version`
|
152
155
|
unless $CHILD_STATUS.success?
|
153
|
-
|
156
|
+
warn 'Unable to build module. Please install PDK or add the `pdk` gem to your Gemfile.'
|
154
157
|
abort
|
155
158
|
end
|
156
159
|
|
@@ -168,52 +171,34 @@ require 'puppet-lint/tasks/puppet-lint'
|
|
168
171
|
# Must clear as it will not override the existing puppet-lint rake task since we require to import for
|
169
172
|
# the PuppetLint::RakeTask
|
170
173
|
Rake::Task[:lint].clear
|
171
|
-
#
|
174
|
+
# Utilize PuppetLint global configuration so that these settings can be tweaked by
|
175
|
+
# spec_helper.rb in an individual module
|
172
176
|
PuppetLint.configuration.relative = true
|
173
|
-
PuppetLint
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
]
|
177
|
+
PuppetLint.configuration.ignore_paths ||= []
|
178
|
+
PuppetLint.configuration.ignore_paths << '.vendor/**/*.pp'
|
179
|
+
PuppetLint.configuration.ignore_paths << 'bundle/**/*.pp'
|
180
|
+
PuppetLint.configuration.ignore_paths << 'pkg/**/*.pp'
|
181
|
+
PuppetLint.configuration.ignore_paths << 'spec/**/*.pp'
|
182
|
+
PuppetLint.configuration.ignore_paths << 'tests/**/*.pp'
|
183
|
+
PuppetLint.configuration.ignore_paths << 'types/**/*.pp'
|
184
|
+
PuppetLint.configuration.ignore_paths << 'vendor/**/*.pp'
|
185
|
+
puppet_lint_disable_checks = %w[
|
186
|
+
80chars
|
187
|
+
140chars
|
188
|
+
class_inherits_from_params_class
|
189
|
+
class_parameter_defaults
|
190
|
+
disable_autoloader_layout
|
191
|
+
documentation
|
192
|
+
single_quote_string_with_variables
|
193
|
+
]
|
194
|
+
puppet_lint_disable_checks.each do |check|
|
195
|
+
PuppetLint.configuration.send("disable_#{check}")
|
193
196
|
end
|
197
|
+
PuppetLint::RakeTask.new(:lint)
|
194
198
|
|
195
199
|
desc 'Run puppet-lint and fix issues automatically'
|
196
200
|
PuppetLint::RakeTask.new(:lint_fix) do |config|
|
197
|
-
config.fail_on_warnings = true
|
198
201
|
config.fix = true
|
199
|
-
config.disable_checks = %w[
|
200
|
-
80chars
|
201
|
-
140chars
|
202
|
-
class_inherits_from_params_class
|
203
|
-
class_parameter_defaults
|
204
|
-
disable_autoloader_layout
|
205
|
-
documentation
|
206
|
-
single_quote_string_with_variables
|
207
|
-
]
|
208
|
-
config.ignore_paths = [
|
209
|
-
'.vendor/**/*.pp',
|
210
|
-
'bundle/**/*.pp',
|
211
|
-
'pkg/**/*.pp',
|
212
|
-
'spec/**/*.pp',
|
213
|
-
'tests/**/*.pp',
|
214
|
-
'types/**/*.pp',
|
215
|
-
'vendor/**/*.pp',
|
216
|
-
]
|
217
202
|
end
|
218
203
|
|
219
204
|
require 'puppet-syntax/tasks/puppet-syntax'
|
@@ -263,7 +248,7 @@ task :compute_dev_version do
|
|
263
248
|
version = modinfo['version']
|
264
249
|
elsif File.exist?('Modulefile')
|
265
250
|
modfile = File.read('Modulefile')
|
266
|
-
version = modfile.match(%r{\nversion
|
251
|
+
version = modfile.match(%r{\nversion +['"](.*)['"]})[1]
|
267
252
|
else
|
268
253
|
raise 'Could not find a metadata.json or Modulefile! Cannot compute dev version without one or the other!'
|
269
254
|
end
|
@@ -273,14 +258,14 @@ task :compute_dev_version do
|
|
273
258
|
|
274
259
|
# If we're in a CI environment include our build number
|
275
260
|
# If the branch is a release branch we append an 'r' into the new_version,
|
276
|
-
# this is due to the release branch buildID conflicting with
|
261
|
+
# this is due to the release branch buildID conflicting with main branch when trying to push to the staging forge.
|
277
262
|
# More info can be found at https://tickets.puppetlabs.com/browse/FM-6170
|
278
|
-
new_version = if build = ENV['BUILD_NUMBER'] || ENV['TRAVIS_BUILD_NUMBER']
|
263
|
+
new_version = if build = (ENV['BUILD_NUMBER'] || ENV['TRAVIS_BUILD_NUMBER'])
|
279
264
|
if branch.eql? 'release'
|
280
|
-
'%s-%s%04d-%s' % [version, 'r', build, sha]
|
265
|
+
'%s-%s%04d-%s' % [version, 'r', build, sha] # legacy support code # rubocop:disable Style/FormatStringToken
|
281
266
|
else
|
282
|
-
'%s-%04d-%s' % [version, build, sha]
|
283
|
-
|
267
|
+
'%s-%04d-%s' % [version, build, sha] # legacy support code # rubocop:disable Style/FormatStringToken
|
268
|
+
end
|
284
269
|
else
|
285
270
|
"#{version}-#{sha}"
|
286
271
|
end
|
@@ -297,10 +282,7 @@ task :release_checks do
|
|
297
282
|
else
|
298
283
|
Rake::Task[:spec].invoke
|
299
284
|
end
|
300
|
-
Rake::Task[
|
301
|
-
Rake::Task['check:test_file'].invoke
|
302
|
-
Rake::Task['check:dot_underscore'].invoke
|
303
|
-
Rake::Task['check:git_ignore'].invoke
|
285
|
+
Rake::Task[:check].invoke
|
304
286
|
end
|
305
287
|
|
306
288
|
namespace :check do
|
@@ -341,6 +323,9 @@ namespace :check do
|
|
341
323
|
end
|
342
324
|
end
|
343
325
|
|
326
|
+
desc 'Run static pre release checks'
|
327
|
+
task check: ['check:symlinks', 'check:test_file', 'check:dot_underscore', 'check:git_ignore']
|
328
|
+
|
344
329
|
desc 'Display the list of available rake tasks'
|
345
330
|
task :help do
|
346
331
|
system('rake -T')
|
@@ -351,6 +336,14 @@ begin
|
|
351
336
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
352
337
|
# These make the rubocop experience maybe slightly less terrible
|
353
338
|
task.options = ['-D', '-S', '-E']
|
339
|
+
|
340
|
+
# Use Rubocop's Github Actions formatter if possible
|
341
|
+
if ENV['GITHUB_ACTIONS'] == 'true'
|
342
|
+
rubocop_spec = Gem::Specification.find_by_name('rubocop')
|
343
|
+
if Gem::Version.new(rubocop_spec.version) >= Gem::Version.new('1.2')
|
344
|
+
task.formatters << 'github'
|
345
|
+
end
|
346
|
+
end
|
354
347
|
end
|
355
348
|
rescue LoadError
|
356
349
|
desc 'rubocop is not available in this installation'
|
@@ -359,29 +352,6 @@ rescue LoadError
|
|
359
352
|
end
|
360
353
|
end
|
361
354
|
|
362
|
-
module_dir = Dir.pwd
|
363
|
-
locales_dir = File.absolute_path('locales', module_dir)
|
364
|
-
# if the task is allowed to run when the module does not have a locales directory,
|
365
|
-
# the task is run in the puppet gem instead and creates a POT there.
|
366
|
-
puts 'gettext-setup tasks will only be loaded if the locales/ directory is present' if Rake.verbose == true
|
367
|
-
if File.exist? locales_dir
|
368
|
-
begin
|
369
|
-
spec = Gem::Specification.find_by_name 'gettext-setup'
|
370
|
-
load "#{spec.gem_dir}/lib/tasks/gettext.rake"
|
371
|
-
# Initialization requires a valid locales directory
|
372
|
-
GettextSetup.initialize(locales_dir)
|
373
|
-
namespace :module do
|
374
|
-
desc 'Runs all tasks to build a modules POT file for internationalization'
|
375
|
-
task :pot_gen do
|
376
|
-
Rake::Task['gettext:pot'].invoke
|
377
|
-
Rake::Task['gettext:metadata_pot'].invoke("#{module_dir}/metadata.json")
|
378
|
-
end
|
379
|
-
end
|
380
|
-
rescue Gem::LoadError
|
381
|
-
puts 'No gettext-setup gem found, skipping GettextSetup config initialization' if Rake.verbose == true
|
382
|
-
end
|
383
|
-
end
|
384
|
-
|
385
355
|
def create_gch_task(changelog_user = nil, changelog_project = nil, changelog_since_tag = nil, changelog_tag_pattern = 'v%s')
|
386
356
|
if Bundler.rubygems.find_name('github_changelog_generator').any?
|
387
357
|
# needed a place to hide these methods
|
@@ -389,6 +359,7 @@ def create_gch_task(changelog_user = nil, changelog_project = nil, changelog_sin
|
|
389
359
|
def changelog_user_from_metadata
|
390
360
|
result = JSON.parse(File.read('metadata.json'))['author']
|
391
361
|
raise 'unable to find the changelog_user in .sync.yml, or the author in metadata.json' if result.nil?
|
362
|
+
|
392
363
|
puts "GitHubChangelogGenerator user:#{result}"
|
393
364
|
result
|
394
365
|
end
|
@@ -396,14 +367,17 @@ def create_gch_task(changelog_user = nil, changelog_project = nil, changelog_sin
|
|
396
367
|
def changelog_project_from_metadata
|
397
368
|
result = JSON.parse(File.read('metadata.json'))['name']
|
398
369
|
raise 'unable to find the changelog_project in .sync.yml or the name in metadata.json' if result.nil?
|
370
|
+
|
399
371
|
puts "GitHubChangelogGenerator project:#{result}"
|
400
372
|
result
|
401
373
|
end
|
402
374
|
|
403
375
|
def changelog_future_release
|
404
376
|
return unless Rake.application.top_level_tasks.include? 'changelog'
|
377
|
+
|
405
378
|
result = JSON.parse(File.read('metadata.json'))['version']
|
406
379
|
raise 'unable to find the future_release (version) in metadata.json' if result.nil?
|
380
|
+
|
407
381
|
puts "GitHubChangelogGenerator future_release:#{result}"
|
408
382
|
result
|
409
383
|
end
|
@@ -413,6 +387,7 @@ def create_gch_task(changelog_user = nil, changelog_project = nil, changelog_sin
|
|
413
387
|
if ENV['CHANGELOG_GITHUB_TOKEN'].nil?
|
414
388
|
raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'"
|
415
389
|
end
|
390
|
+
|
416
391
|
config.user = changelog_user || changelog_user_from_metadata
|
417
392
|
config.project = changelog_project || changelog_project_from_metadata
|
418
393
|
config.since_tag = changelog_since_tag if changelog_since_tag
|
@@ -442,18 +417,18 @@ def create_gch_task(changelog_user = nil, changelog_project = nil, changelog_sin
|
|
442
417
|
else
|
443
418
|
desc 'Generate a Changelog from GitHub'
|
444
419
|
task :changelog do
|
445
|
-
raise
|
446
|
-
The changelog tasks depends on unreleased features of the github_changelog_generator gem.
|
447
|
-
Please manually add it to your .sync.yml for now, and run `pdk update`:
|
448
|
-
---
|
449
|
-
Gemfile:
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
420
|
+
raise <<~MESSAGE
|
421
|
+
The changelog tasks depends on unreleased features of the github_changelog_generator gem.
|
422
|
+
Please manually add it to your .sync.yml for now, and run `pdk update`:
|
423
|
+
---
|
424
|
+
Gemfile:
|
425
|
+
optional:
|
426
|
+
':development':
|
427
|
+
- gem: 'github_changelog_generator'
|
428
|
+
git: 'https://github.com/skywinder/github-changelog-generator'
|
429
|
+
ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
|
430
|
+
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')"
|
431
|
+
MESSAGE
|
457
432
|
end
|
458
433
|
end
|
459
434
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'pathspec'
|
2
4
|
|
3
5
|
module PuppetlabsSpecHelper; end
|
@@ -33,7 +35,7 @@ class PuppetlabsSpecHelper::Tasks::CheckSymlinks
|
|
33
35
|
end
|
34
36
|
|
35
37
|
def ignored?(path)
|
36
|
-
path = path
|
38
|
+
path = "#{path}/" if File.directory?(path)
|
37
39
|
|
38
40
|
!ignore_pathspec.match_paths([path], Dir.pwd).empty?
|
39
41
|
end
|
@@ -42,6 +44,7 @@ class PuppetlabsSpecHelper::Tasks::CheckSymlinks
|
|
42
44
|
@ignore_pathspec ||= PathSpec.new(DEFAULT_IGNORED).tap do |pathspec|
|
43
45
|
IGNORE_LIST_FILES.each do |f|
|
44
46
|
next unless File.file?(f) && File.readable?(f)
|
47
|
+
|
45
48
|
File.open(f, 'r') { |fd| pathspec.add(fd) }
|
46
49
|
end
|
47
50
|
end
|