simp-rake-helpers 5.11.4 → 5.11.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3bde11b6e154b94ae99c983cc5efbc50ee72bfd5e4fff43752f3bde5a1fe9383
4
- data.tar.gz: 1f20976af7376822f6d4ab663b2d5f4b01bab9c85cc71a3f86035d586771e443
3
+ metadata.gz: 9b882eab26bdb4e92d2cddac0a080fabc1fb517f4741c61c960553201c71f649
4
+ data.tar.gz: edb33965a9af173e8e0dd9a65eb016689754b560b1c5d4c986ccb084df1c8627
5
5
  SHA512:
6
- metadata.gz: bc56ab90f4e83059108725f9750793ba060bac5af618d72e819f095319233ae1229a7f8a153feb4ecd50de46808792fd9c3c2559f02ec632c606a9fdeb3a8659
7
- data.tar.gz: 8cdf8f62c251be9bbc3388adaae57516fde2eb0478adf6ec4fd66c09bf411cf1902546ac309a455f87dcef1d30db3f5cd498dcc6838e2a80c0102f1448bc5c1e
6
+ metadata.gz: 7aead3d0b88b982510a872293c77a81d848189b4e4b96ec16fe3d698d7870fa86136a244f98700d1afb2340d7084a8226c7953804eae6eccfcfe4c13d85d8d91
7
+ data.tar.gz: 319182e049295afa57e8da953980bb33b08c8b1987a7362b4d42a5d10a35c53fe0d969bc548d49719fff7ccb3635845a908e71544116a3fd840305b586f2a353
@@ -3,35 +3,16 @@ language: ruby
3
3
  cache: bundler
4
4
  sudo: false
5
5
 
6
- bundler_args: --without development system_tests
7
-
8
6
  notifications:
9
7
  email: false
10
8
 
11
- addons:
12
- apt:
13
- packages:
14
- - rpm
15
- # provides unbuffer
16
- - expect-dev
17
-
18
- before_install:
19
- - rm -f Gemfile.lock
20
-
21
9
  jobs:
22
10
  include:
23
- - stage: spec
24
- rvm: 2.5.1
25
- script:
26
- - bundle exec rake spec
27
-
28
- - stage: acceptance
29
- sudo: required
30
- rvm: 2.5.1
31
- services:
32
- - docker
33
- script:
34
- - travis_wait 90 unbuffer bundle exec rake acceptance
11
+ ### Testing on Travis CI is indefinitely disabled
12
+ ###
13
+ ### See:
14
+ ### * https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
15
+ ### * https://simp-project.atlassian.net/browse/SIMP-8703
35
16
 
36
17
  - stage: deploy
37
18
  rvm: 2.5.1
@@ -1,3 +1,9 @@
1
+ ### 5.11.5 / 2020-12-02
2
+ * Add support for Puppet 7
3
+ * Work around issues with querying RPM spec file changelogs using RPM version 4.15.0+
4
+ * Switch between 'with_unbundled_env' and 'with_clean_env' based on which one
5
+ Bundler supports.
6
+
1
7
  ### 5.11.4 / 2020-08-03
2
8
  * Permit *.md files in `rake pkg:compare_latest_tag`
3
9
 
data/Gemfile CHANGED
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # SIMP_GEM_SERVERS | a space/comma delimited list of rubygem servers
4
4
  # PUPPET_VERSION | specifies the version of the puppet gem to load
5
- puppetversion = ENV.key?('PUPPET_VERSION') ? "#{ENV['PUPPET_VERSION']}" : '~> 5'
5
+ puppetversion = ENV.key?('PUPPET_VERSION') ? "#{ENV['PUPPET_VERSION']}" : '~> 6'
6
6
  gem_sources = ENV.key?('SIMP_GEM_SERVERS') ? ENV['SIMP_GEM_SERVERS'].split(/[, ]+/) : ['https://rubygems.org']
7
7
 
8
8
  gem_sources.each { |gem_source| source gem_source }
@@ -139,6 +139,23 @@ class Simp::ComponentInfo
139
139
  if $?.exitstatus != 0
140
140
  fail("Could not extract changelog from #{rpm_spec_files[0]}." +
141
141
  " To debug, execute:\n #{changelog_query}")
142
+ elsif raw_changelog.strip.empty?
143
+ changelog_lines = []
144
+
145
+ in_changelog = false
146
+ File.read(rpm_spec_files[0]).lines.each do |line|
147
+ changelog_lines << line if in_changelog
148
+
149
+ if line.start_with?('%')
150
+ if line.start_with?('%changelog')
151
+ in_changelog = true
152
+ else
153
+ in_changelog = false
154
+ end
155
+ end
156
+ end
157
+
158
+ raw_changelog = changelog_lines.join
142
159
  end
143
160
  @changelog = parse_changelog(raw_changelog, latest_version_only, verbose)
144
161
  end
@@ -76,7 +76,8 @@ module Simp::Rake::Build
76
76
  #
77
77
  # Clean env will give bundler the environment present before
78
78
  # Bundler is activated.
79
- ::Bundler.with_clean_env do
79
+ clean_env_method = Bundler.respond_to?(:with_unbundled_env) ? :with_unbundled_env : :with_clean_env
80
+ ::Bundler.send(clean_env_method) do
80
81
  out = %x(bundle #{args[:action]} 2>&1)
81
82
  status = $?.success?
82
83
  puts out if verbose
@@ -94,6 +95,7 @@ module Simp::Rake::Build
94
95
  namespace :yum do
95
96
  task :prep do
96
97
  if $simp6
98
+ # `$simp6_build_dir` is set by the build:auto task
97
99
  @build_dir = $simp6_build_dir
98
100
 
99
101
  unless @build_dir
@@ -469,10 +471,10 @@ module Simp::Rake::Build
469
471
  ##############################################################################
470
472
 
471
473
  desc <<-EOM
472
- Create a workspace for a new distribution.
474
+ Create a new yum directory tree for a new distribution.
473
475
 
474
- Creates a YUM scaffold under
475
- #{@build_dir}/yum_data/SIMP{:simp_version}_{:os}{:os_version}_{:arch}.
476
+ Creates a YUM directory tree under
477
+ {dist_build_dir}/yum_data/SIMP{:simp_version}_{:os}{:os_version}_{:arch}.
476
478
 
477
479
  * :os - The Operating System that you wish to use.
478
480
  Supported OSs: #{@target_dists}.join(', ')
@@ -482,31 +484,45 @@ module Simp::Rake::Build
482
484
  Default: Auto
483
485
 
484
486
  * :arch - The architecture that you support. Default: x86_64
487
+
488
+ Set ENV['SIMP_BUILD_yum_dir'] to override the path of {dist_build_dir}
489
+
490
+ Will not overwrite existing directories or package.yaml files
485
491
  EOM
486
- task :scaffold,[:os,:os_version,:simp_version,:arch] => [:prep] do |t,args|
492
+ task :scaffold,[:os,:os_version,:simp_version,:arch] do |t,args|
487
493
  # @simp_version is set in the main Rakefile
488
494
  args.with_defaults(:simp_version => @simp_version.split('-').first)
489
495
  args.with_defaults(:arch => @build_arch)
490
496
 
491
- target_dir = get_target_dir(args)
492
-
493
- unless File.exist?(target_dir)
494
- mkdir_p(target_dir)
495
- puts("Created #{target_dir}")
496
- end
497
-
498
- # Put together the rest of the scaffold directories
499
- Dir.chdir(@build_base_dir) do
500
- if $simp6
501
- mkdir('../my_repos') unless File.exist?('../my_repos')
502
- else
503
- mkdir('my_repos') unless File.exist?('my_repos')
504
- end
505
- end
506
-
507
- Dir.chdir(target_dir) do
508
- mkdir('repos') unless File.exist?('repos')
509
- mkdir('packages') unless File.exist?('packages')
497
+ major_os_ver = args[:os_version].split('.').first
498
+ build_dir = distro_build_dir(
499
+ File.join(@base_dir,'build'), args[:os], major_os_ver, args[:arch]
500
+ )
501
+ build_dir = ENV['SIMP_BUILD_yum_dir'] if File.directory?(ENV['SIMP_BUILD_yum_dir'].to_s)
502
+ ENV['SIMP_BUILD_yum_dir'] ||= build_dir # <-- for hacky :prep task
503
+
504
+ target_dir = File.join(build_dir,'yum_data')
505
+
506
+ # Create directories
507
+ my_repos = $simp6 ? '../my_repos' : 'my_repos'
508
+ [
509
+ target_dir,
510
+ File.join(target_dir,'repos'),
511
+ File.join(target_dir,'packages'),
512
+ File.expand_path(my_repos,target_dir)
513
+ ].each { |dir| mkdir_p(dir, verbose: false) }
514
+
515
+ # Create example packages.yaml
516
+ packages_yaml_path = File.join(target_dir, 'packages.yaml')
517
+ unless File.exists? packages_yaml_path
518
+ pkg = 'example-package-name'
519
+ pkg_file = "#{pkg}-1.0.0-1.el#{major_os_ver}.#{args[:arch]}.rpm"
520
+ yum_url = "https://yum.server/#{args[:os]}/#{major_os_ver}/#{args[:arch]}"
521
+ pkg_url = "#{yum_url}/#{pkg_file}"
522
+ yaml = { pkg => { rpm_name: pkg_file, source: pkg_url } }.to_yaml
523
+ File.open(packages_yaml_path,'w'){|f| f.puts yaml.gsub(/^/,'# ') }
524
+ puts "Created #{target_dir}"
525
+ puts "Created example file at #{packages_yaml_path}"
510
526
  end
511
527
  end
512
528
 
@@ -525,7 +541,7 @@ module Simp::Rake::Build
525
541
 
526
542
  * :arch - The architecture that you support. Default: x86_64
527
543
  EOM
528
- task :sync,[:os,:os_version,:simp_version,:arch] => [:prep, :scaffold] do |t,args|
544
+ task :sync,[:os,:os_version,:simp_version,:arch] => [:scaffold, :prep] do |t,args|
529
545
  # @simp_version is set in the main Rakefile
530
546
  args.with_defaults(:simp_version => @simp_version.split('-').first)
531
547
  args.with_defaults(:arch => @build_arch)
@@ -550,7 +566,7 @@ module Simp::Rake::Build
550
566
 
551
567
  * :arch - The architecture that you support. Default: x86_64
552
568
  EOM
553
- task :diff,[:os,:os_version,:simp_version,:arch] => [:prep, :scaffold] do |t,args|
569
+ task :diff,[:os,:os_version,:simp_version,:arch] => [:scaffold, :prep] do |t,args|
554
570
  args.with_defaults(:simp_version => @simp_version.split('-').first)
555
571
  args.with_defaults(:arch => @build_arch)
556
572
 
@@ -616,7 +632,7 @@ module Simp::Rake::Build
616
632
 
617
633
  * :arch - The architecture that you support. Default: x86_64
618
634
  EOM
619
- task :fetch,[:pkg,:os,:os_version,:simp_version,:arch] => [:prep, :scaffold] do |t,args|
635
+ task :fetch,[:pkg,:os,:os_version,:simp_version,:arch] => [:scaffold, :prep] do |t,args|
620
636
  args.with_defaults(:simp_version => @simp_version.split('-').first)
621
637
  args.with_defaults(:arch => @build_arch)
622
638
 
@@ -3,6 +3,10 @@ require 'rake/tasklib'
3
3
  module Simp::Rake; end
4
4
  module Simp::Rake::Build; end
5
5
  module Simp::Rake::Build::Constants
6
+ def distro_build_dir(build_dir, build_distro, build_version, build_arch)
7
+ File.join(build_dir, 'distributions', build_distro, build_version, build_arch)
8
+ end
9
+
6
10
  def init_member_vars( base_dir )
7
11
  return if @member_vars_initialized
8
12
 
@@ -36,7 +40,7 @@ module Simp::Rake::Build::Constants
36
40
  @simp_dvd_dirs = ["SIMP","ks","Config"]
37
41
  @member_vars_initialized = true
38
42
 
39
- @distro_build_dir = File.join(@build_dir, 'distributions', @build_distro, @build_version, @build_arch)
43
+ @distro_build_dir = distro_build_dir(@build_dir, @build_distro, @build_version, @build_arch)
40
44
  @dvd_src = File.join(@distro_build_dir, 'DVD')
41
45
  @dvd_dir = File.join(@distro_build_dir, 'DVD_Overlay')
42
46
 
@@ -69,6 +69,7 @@ module Simp::Rake::Build
69
69
  :in_processes => get_cpu_limit,
70
70
  :progress => t.name
71
71
  ) do |dir|
72
+ next unless File.directory?(dir)
72
73
  Dir.chdir(dir) do
73
74
  begin
74
75
  rake_flags = Rake.application.options.trace ? '--trace' : ''
@@ -98,6 +99,7 @@ module Simp::Rake::Build
98
99
  :in_processes => get_cpu_limit,
99
100
  :progress => t.name
100
101
  ) do |dir|
102
+ next unless File.directory?(dir)
101
103
  Dir.chdir(dir) do
102
104
  rake_flags = Rake.application.options.trace ? '--trace' : ''
103
105
  sh %{rake clobber #{rake_flags}}
@@ -867,8 +869,18 @@ protect=1
867
869
  $stderr.puts("First 'rake pkg:rpm' attempt for #{dir} failed, running bundle and trying again.")
868
870
  end
869
871
 
870
- ::Bundler.with_clean_env do
871
- %x{bundle install --with development}
872
+ if Bundler.respond_to?(:with_unbundled_env)
873
+ # Bundler 2.1+
874
+ clean_env_method = :with_unbundled_env
875
+ bundle_install_cmd = %{bundle config set with 'development' && bundle install}
876
+ else
877
+ # Old Bundler
878
+ clean_env_method = :with_clean_env
879
+ bundle_install_cmd = %{bundle install --with development}
880
+ end
881
+
882
+ ::Bundler.send(clean_env_method) do
883
+ %x{#{bundle_install_cmd}}
872
884
  output = %x{#{cmd} 2>&1}
873
885
 
874
886
  unless $?.success?
@@ -2,5 +2,5 @@ module Simp; end
2
2
  module Simp::Rake; end
3
3
 
4
4
  class Simp::Rake::Helpers
5
- VERSION = '5.11.4'
5
+ VERSION = '5.11.5'
6
6
  end
@@ -613,5 +613,10 @@ EOE
613
613
  end
614
614
  end
615
615
  end
616
+
617
+ # Returns the version of RPM installed on the system
618
+ def self.version
619
+ %x{rpm --version}.strip.split.last
620
+ end
616
621
  end
617
622
  end
@@ -35,8 +35,7 @@ describe Simp::Ci::Gitlab do
35
35
  describe '#validate_config' do
36
36
  it 'succeeds when no .gitlab-ci.yml file exists and no tests exist' do
37
37
  proj_dir = File.join(files_dir, 'no_gitlab_config_without_tests')
38
- expect{ Simp::Ci::Gitlab.new(proj_dir).validate_config }.
39
- to_not raise_error
38
+ expect{ Simp::Ci::Gitlab.new(proj_dir).validate_config }.to_not raise_error
40
39
  end
41
40
 
42
41
  it 'succeeds but warns when no .gitlab-ci.yml file exists but tests exist' do
@@ -56,9 +55,9 @@ describe Simp::Ci::Gitlab do
56
55
  proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
57
56
  validator = Simp::Ci::Gitlab.new(proj_dir)
58
57
 
59
- validator.stubs(:`).with('which curl').returns('/usr/bin/curl')
58
+ expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
60
59
  gitlab_response = '{"status":"valid","errors":[]}'
61
- validator.stubs(:`).with(Not(equals('which curl'))).returns(gitlab_response)
60
+ expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
62
61
 
63
62
  expect{ validator.validate_config }.
64
63
  to_not raise_error
@@ -68,9 +67,9 @@ describe Simp::Ci::Gitlab do
68
67
  proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
69
68
  validator = Simp::Ci::Gitlab.new(proj_dir)
70
69
 
71
- validator.stubs(:`).with('which curl').returns('/usr/bin/curl')
70
+ expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
72
71
  gitlab_response = '{"status":"invalid","errors":["root config contains unknown keys: pup5.5-unit"]}'
73
- validator.stubs(:`).with(Not(equals('which curl'))).returns(gitlab_response)
72
+ expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
74
73
 
75
74
  expect{ validator.validate_config }.
76
75
  to raise_error(Simp::Ci::Gitlab::LintError,
@@ -97,7 +96,7 @@ describe Simp::Ci::Gitlab do
97
96
  proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
98
97
  validator = Simp::Ci::Gitlab.new(proj_dir)
99
98
 
100
- validator.stubs(:`).returns('')
99
+ expect(validator).to receive(:`).and_return('')
101
100
 
102
101
  expect{ validator.validate_yaml }.
103
102
  to output(/Could not find 'curl'/).to_stdout
@@ -107,8 +106,8 @@ describe Simp::Ci::Gitlab do
107
106
  proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
108
107
  validator = Simp::Ci::Gitlab.new(proj_dir)
109
108
 
110
- validator.stubs(:`).with('which curl').returns('/usr/bin/curl')
111
- validator.stubs(:`).with(Not(equals('which curl'))).returns('{}')
109
+ expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
110
+ expect(validator).to receive(:`).with(/(?!which curl).*/).and_return('{}')
112
111
 
113
112
  expect{ validator.validate_yaml }.
114
113
  to output(/Unable to lint check/).to_stdout
@@ -118,9 +117,9 @@ describe Simp::Ci::Gitlab do
118
117
  proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
119
118
  validator = Simp::Ci::Gitlab.new(proj_dir)
120
119
 
121
- validator.stubs(:`).with('which curl').returns('/usr/bin/curl')
120
+ expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
122
121
  gitlab_response = '{"status":"valid","errors":[]}'
123
- validator.stubs(:`).with(Not(equals('which curl'))).returns(gitlab_response)
122
+ expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
124
123
 
125
124
  expect{ validator.validate_yaml }.
126
125
  to_not raise_error
@@ -132,9 +131,9 @@ describe Simp::Ci::Gitlab do
132
131
  proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
133
132
  validator = Simp::Ci::Gitlab.new(proj_dir)
134
133
 
135
- validator.stubs(:`).with('which curl').returns('/usr/bin/curl')
134
+ expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
136
135
  gitlab_response = '{"status":"invalid","errors":["root config contains unknown keys: pup5.5-unit"]}'
137
- validator.stubs(:`).with(Not(equals('which curl'))).returns(gitlab_response)
136
+ expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
138
137
 
139
138
  expect{ validator.validate_yaml }.
140
139
  to raise_error(Simp::Ci::Gitlab::LintError,
@@ -257,10 +257,16 @@ describe Simp::ComponentInfo do
257
257
  /Could not extract version and release from /)
258
258
  end
259
259
 
260
- # This has to be a case in which version and release can be read
261
- # from spec file but the changelog (which is optional) can't. Could
262
- # be mocked, but would like a real-world test case.
263
- xit 'fails when changelog cannot be read from asset RPM spec file'
260
+ it 'fails when changelog cannot be read from asset RPM spec file' do
261
+ skip(
262
+ <<~SKIP.strip.split("\n").join(' ')
263
+ This has to be a case in which version and release can be read from
264
+ spec file but the changelog (which is optional) can't.
264
265
 
266
+ It *could* be mocked, but is probably not worth the LOE unless we
267
+ encounter a real-world test case."
268
+ SKIP
269
+ )
270
+ end
265
271
  end
266
272
  end
@@ -4,7 +4,10 @@ require 'spec_helper'
4
4
  describe Simp::Rake::Build::Helpers do
5
5
  before :each do
6
6
  dir = File.expand_path( '../../files/simp_build', File.dirname( __FILE__ ) )
7
+ env = ENV['SIMP_RPM_dist'].dup
8
+ ENV['SIMP_RPM_dist'] = '.el7'
7
9
  @obj = Simp::Rake::Build::Helpers.new( dir )
10
+ ENV['SIMP_RPM_dist'] = env
8
11
  end
9
12
 
10
13
  describe "#initialize" do
@@ -32,8 +32,7 @@ describe 'Simp::Rake::Build::RpmDeps#get_version_requires' do
32
32
  }.to raise_error(SIMPRpmDepVersionException)
33
33
  end
34
34
 
35
- # FIXME regex doesn't catch this
36
- pending do
35
+ it( nil, :pending => "FIXME regex doesn't catch this" ) do
37
36
  expect{
38
37
  Simp::Rake::Build::RpmDeps::get_version_requires(pkg, '<= 3.0.0')
39
38
  }.to raise_error(SIMPRpmDepVersionException)
@@ -1,18 +1,9 @@
1
1
  source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
2
 
3
- puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 3.3']
3
+ puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 5.5']
4
4
  gem 'metadata-json-lint'
5
5
  gem 'puppet', puppetversion
6
6
  gem 'puppetlabs_spec_helper', '>= 1.0.0'
7
7
  gem 'puppet-lint', '>= 1.0.0'
8
8
  gem 'facter', '>= 1.7.0'
9
9
  gem 'rspec-puppet'
10
-
11
- # rspec must be v2 for ruby 1.8.7
12
- if RUBY_VERSION >= '1.8.7' && RUBY_VERSION < '1.9'
13
- gem 'rspec', '~> 2.0'
14
- gem 'rake', '~> 10.0'
15
- else
16
- # rubocop requires ruby >= 1.9
17
- gem 'rubocop'
18
- end
@@ -8,7 +8,8 @@ describe Simp::Rake do
8
8
 
9
9
  describe ".get_cpu_limit" do
10
10
  it "detects number of CPUs" do
11
- expect( get_cpu_limit ).to be > 0
11
+ expect(Parallel).to receive(:processor_count).and_return(3)
12
+ expect( get_cpu_limit ).to eq 2
12
13
  end
13
14
  end
14
15
 
@@ -1,6 +1,8 @@
1
1
  require 'simp/relchecks'
2
2
  require 'spec_helper'
3
3
 
4
+ rpm_version = Simp::RPM.version
5
+
4
6
  describe 'Simp::RelChecks.check_rpm_changelog' do
5
7
  let(:files_dir) {
6
8
  File.join( File.dirname(__FILE__), 'files', File.basename(__FILE__, '.rb'))
@@ -31,19 +33,27 @@ describe 'Simp::RelChecks.check_rpm_changelog' do
31
33
 
32
34
  context 'with changelog errors' do
33
35
  it 'fails for a Puppet module' do
34
- component_dir = File.join(files_dir, 'module_with_misordered_entries')
35
- component_spec = File.join(templates_dir, 'simpdefault.spec')
36
-
37
- expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
38
- to raise_error(/ERROR: Invalid changelog for module_with_misordered_entries/)
36
+ if Gem::Version.new(rpm_version) > Gem::Version.new('4.15.0')
37
+ skip("RPM #{rpm_version} does not properly process changelog entries")
38
+ else
39
+ component_dir = File.join(files_dir, 'module_with_misordered_entries')
40
+ component_spec = File.join(templates_dir, 'simpdefault.spec')
41
+
42
+ expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
43
+ to raise_error(/ERROR: Invalid changelog for module_with_misordered_entries/)
44
+ end
39
45
  end
40
46
 
41
47
  it 'fails for a non-Puppet asset' do
42
- component_dir = File.join(files_dir, 'asset_with_misordered_entries')
43
- component_spec = File.join(component_dir, 'build', 'asset_with_misordered_entries.spec')
44
-
45
- expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
46
- to raise_error(/ERROR: Invalid changelog for asset_with_misordered_entries/)
48
+ if Gem::Version.new(rpm_version) > Gem::Version.new('4.15.0')
49
+ skip("RPM #{rpm_version} does not properly process changelog entries")
50
+ else
51
+ component_dir = File.join(files_dir, 'asset_with_misordered_entries')
52
+ component_spec = File.join(component_dir, 'build', 'asset_with_misordered_entries.spec')
53
+
54
+ expect{ Simp::RelChecks.check_rpm_changelog(component_dir, component_spec) }.
55
+ to raise_error(/ERROR: Invalid changelog for asset_with_misordered_entries/)
56
+ end
47
57
  end
48
58
  end
49
59
  end
@@ -10,17 +10,17 @@ describe 'Simp::RelChecks.compare_latest_tag' do
10
10
 
11
11
  context 'with no project errors' do
12
12
  it 'reports no tags for a project with no tags' do
13
- Simp::RelChecks.expects(:`).with('git fetch -t origin 2>/dev/null').returns("\n")
14
- Simp::RelChecks.expects(:`).with('git tag -l').returns("\n")
13
+ expect(Simp::RelChecks).to receive(:`).with('git fetch -t origin 2>/dev/null').and_return("\n")
14
+ expect(Simp::RelChecks).to receive(:`).with('git tag -l').and_return("\n")
15
15
 
16
16
  expect{ Simp::RelChecks.compare_latest_tag(component_dir) }.
17
17
  to output(" No tags exist from origin\n").to_stdout
18
18
  end
19
19
 
20
20
  it 'reports no new tag required when no files have changed' do
21
- Simp::RelChecks.expects(:`).with('git fetch -t origin 2>/dev/null').returns("\n")
22
- Simp::RelChecks.expects(:`).with('git tag -l').returns("1.0.0-pre\n1.0.0\n1.1.0\n")
23
- Simp::RelChecks.expects(:`).with('git diff tags/1.1.0 --name-only').returns("\n")
21
+ expect(Simp::RelChecks).to receive(:`).with('git fetch -t origin 2>/dev/null').and_return("\n")
22
+ expect(Simp::RelChecks).to receive(:`).with('git tag -l').and_return("1.0.0-pre\n1.0.0\n1.1.0\n")
23
+ expect(Simp::RelChecks).to receive(:`).with('git diff tags/1.1.0 --name-only').and_return("\n")
24
24
 
25
25
  msg = " No new tag required: No significant files have changed since '1.1.0' tag\n"
26
26
  expect{ Simp::RelChecks.compare_latest_tag(component_dir) }.
@@ -28,9 +28,9 @@ describe 'Simp::RelChecks.compare_latest_tag' do
28
28
  end
29
29
 
30
30
  it 'reports no new tag required when no significant files have changed' do
31
- Simp::RelChecks.expects(:`).with('git fetch -t origin 2>/dev/null').returns("\n")
32
- Simp::RelChecks.expects(:`).with('git tag -l').returns("1.0.0\nv1.0.1\n1.1.0\n")
33
- Simp::RelChecks.expects(:`).with('git diff tags/1.1.0 --name-only').returns(
31
+ expect(Simp::RelChecks).to receive(:`).with('git fetch -t origin 2>/dev/null').and_return("\n")
32
+ expect(Simp::RelChecks).to receive(:`).with('git tag -l').and_return("1.0.0\nv1.0.1\n1.1.0\n")
33
+ expect(Simp::RelChecks).to receive(:`).with('git diff tags/1.1.0 --name-only').and_return(
34
34
  ".travis.yml\nRakefile\nREFERENCE.md\nGemfile.lock\nspec/some_spec.rb\ndoc/index.html\nrakelib/mytasks.rake\n")
35
35
 
36
36
  msg = " No new tag required: No significant files have changed since '1.1.0' tag\n"
@@ -39,9 +39,9 @@ describe 'Simp::RelChecks.compare_latest_tag' do
39
39
  end
40
40
 
41
41
  it 'reports a new tag is required for significant changes with bumped version' do
42
- Simp::RelChecks.expects(:`).with('git fetch -t origin 2>/dev/null').returns("\n")
43
- Simp::RelChecks.expects(:`).with('git tag -l').returns("1.0.0\n1.1.0-RC01\n")
44
- Simp::RelChecks.expects(:`).with('git diff tags/1.0.0 --name-only').returns(
42
+ expect(Simp::RelChecks).to receive(:`).with('git fetch -t origin 2>/dev/null').and_return("\n")
43
+ expect(Simp::RelChecks).to receive(:`).with('git tag -l').and_return("1.0.0\n1.1.0-RC01\n")
44
+ expect(Simp::RelChecks).to receive(:`).with('git diff tags/1.0.0 --name-only').and_return(
45
45
  "CHANGELOG\nmetadata.json\nmanifest/init.pp\n")
46
46
 
47
47
  msg = <<-EOM
@@ -58,9 +58,9 @@ NOTICE: New tag of version '1.1.0' is required for 3 changed files:
58
58
 
59
59
  context 'with project errors' do
60
60
  it 'fails when latest version < latest tag' do
61
- Simp::RelChecks.expects(:`).with('git fetch -t origin 2>/dev/null').returns("\n")
62
- Simp::RelChecks.expects(:`).with('git tag -l').returns("1.0.0\n1.2.0\n")
63
- Simp::RelChecks.expects(:`).with('git diff tags/1.2.0 --name-only').returns(
61
+ expect(Simp::RelChecks).to receive(:`).with('git fetch -t origin 2>/dev/null').and_return("\n")
62
+ expect(Simp::RelChecks).to receive(:`).with('git tag -l').and_return("1.0.0\n1.2.0\n")
63
+ expect(Simp::RelChecks).to receive(:`).with('git diff tags/1.2.0 --name-only').and_return(
64
64
  "CHANGELOG\nmetadata.json\nmanifest/init.pp\n")
65
65
 
66
66
  expect{ Simp::RelChecks.compare_latest_tag(component_dir) }.
@@ -68,9 +68,9 @@ NOTICE: New tag of version '1.1.0' is required for 3 changed files:
68
68
  end
69
69
 
70
70
  it 'fails when significant file changes need a version bump' do
71
- Simp::RelChecks.expects(:`).with('git fetch -t origin 2>/dev/null').returns("\n")
72
- Simp::RelChecks.expects(:`).with('git tag -l').returns("1.0.0\n1.1.0\n")
73
- Simp::RelChecks.expects(:`).with('git diff tags/1.1.0 --name-only').returns(
71
+ expect(Simp::RelChecks).to receive(:`).with('git fetch -t origin 2>/dev/null').and_return("\n")
72
+ expect(Simp::RelChecks).to receive(:`).with('git tag -l').and_return("1.0.0\n1.1.0\n")
73
+ expect(Simp::RelChecks).to receive(:`).with('git diff tags/1.1.0 --name-only').and_return(
74
74
  "manifest/init.pp\n")
75
75
 
76
76
  expect{ Simp::RelChecks.compare_latest_tag(component_dir) }.
@@ -237,7 +237,7 @@ describe Simp::RPM do
237
237
  ENV['SIMP_RPM_dist'] = @pre_env
238
238
  end
239
239
  it 'returns dist' do
240
- Simp::RPM.stubs(:system_dist).returns('.testdist')
240
+ allow(Simp::RPM).to receive(:system_dist).and_return('.testdist')
241
241
  rpm_obj = Simp::RPM.new( @rpm_file )
242
242
  d_rpm_obj = Simp::RPM.new( @d_rpm_file )
243
243
  spec_obj = Simp::RPM.new( @spec_file )
@@ -10,5 +10,5 @@ RSpec.configure do |config|
10
10
  config.filter_run :focus
11
11
 
12
12
  config.mock_framework = :rspec
13
- config.mock_with :mocha
13
+ #config.mock_with :rspec
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simp-rake-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.11.4
4
+ version: 5.11.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Tessmer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-08-03 00:00:00.000000000 Z
12
+ date: 2020-12-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: simp-beaker-helpers
@@ -74,7 +74,7 @@ dependencies:
74
74
  version: '3.0'
75
75
  - - "<"
76
76
  - !ruby/object:Gem::Version
77
- version: '7.0'
77
+ version: '8.0'
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
@@ -84,7 +84,7 @@ dependencies:
84
84
  version: '3.0'
85
85
  - - "<"
86
86
  - !ruby/object:Gem::Version
87
- version: '7.0'
87
+ version: '8.0'
88
88
  - !ruby/object:Gem::Dependency
89
89
  name: puppet-lint
90
90
  requirement: !ruby/object:Gem::Requirement