simp-rake-helpers 5.11.0 → 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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -24
  3. data/CHANGELOG.md +18 -0
  4. data/Gemfile +2 -1
  5. data/lib/simp/componentinfo.rb +23 -3
  6. data/lib/simp/rake/build/build.rb +43 -27
  7. data/lib/simp/rake/build/constants.rb +5 -1
  8. data/lib/simp/rake/build/pkg.rb +14 -2
  9. data/lib/simp/rake/build/rpmdeps.rb +18 -17
  10. data/lib/simp/rake/build/tar.rb +1 -1
  11. data/lib/simp/rake/helpers/assets/rpm_spec/simp6.spec +15 -1
  12. data/lib/simp/rake/helpers/assets/rpm_spec/simpdefault.spec +15 -1
  13. data/lib/simp/rake/helpers/version.rb +1 -1
  14. data/lib/simp/relchecks.rb +1 -1
  15. data/lib/simp/rpm.rb +5 -0
  16. data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  17. data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  18. data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/nodesets +1 -1
  19. data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  20. data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/nodesets +1 -1
  21. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/nodesets +1 -1
  22. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/nodesets +1 -1
  23. data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/nodesets +1 -1
  24. data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/suites/default/nodesets +1 -1
  25. data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/suites/default/nodesets +1 -1
  26. data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/nodesets +1 -1
  27. data/spec/lib/simp/ci/gitlab_spec.rb +12 -13
  28. data/spec/lib/simp/componentinfo_spec.rb +35 -41
  29. data/spec/lib/simp/files/build/testpackage.spec +1 -1
  30. data/spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/CHANGELOG +14 -0
  31. data/spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/metadata.json +44 -0
  32. data/spec/lib/simp/files/testpackage-rc0.spec +32 -0
  33. data/spec/lib/simp/rake/build/helpers_spec.rb +3 -0
  34. data/spec/lib/simp/rake/build/rpmdeps_spec.rb +3 -3
  35. data/spec/lib/simp/rake/pupmod/fixtures/othermod/Gemfile +1 -10
  36. data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/nodesets +1 -1
  37. data/spec/lib/simp/rake_spec.rb +2 -1
  38. data/spec/lib/simp/relchecks_check_rpm_changelog_spec.rb +20 -10
  39. data/spec/lib/simp/relchecks_compare_latest_tag_spec.rb +18 -18
  40. data/spec/lib/simp/rpm_spec.rb +6 -1
  41. data/spec/spec_helper.rb +1 -1
  42. metadata +8 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8df4b35e000bb36b26db550e81337f96b2fa1dfa99646dc4d7fcbfe76e2ecdf
4
- data.tar.gz: d3f6ea0a5ef4d1ac277b6447615305a118184c0e59f79d860ae9acc34439bf70
3
+ metadata.gz: 9b882eab26bdb4e92d2cddac0a080fabc1fb517f4741c61c960553201c71f649
4
+ data.tar.gz: edb33965a9af173e8e0dd9a65eb016689754b560b1c5d4c986ccb084df1c8627
5
5
  SHA512:
6
- metadata.gz: db7c733f928206a27e60a984b5b1b9bcb4fae865adbb57818803ff9f9738eefe976372ce5a14fab45be2cb836906798e33074068f4654b71b6733b2b85714fb8
7
- data.tar.gz: 90408311e53eefc6b4d9714e63c39c325b66c7a5c1dd720b540014d59d00c067413a16f1940359d769feaa37d22705a13c06ab2540b7780b092f9142279b9d83
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,21 @@
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
+
7
+ ### 5.11.4 / 2020-08-03
8
+ * Permit *.md files in `rake pkg:compare_latest_tag`
9
+
10
+ ### 5.11.3 / 2020-05-19
11
+ * Fix automatically added dependencies for SIMP 6.4+
12
+
13
+ ### 5.11.2 / 2020-04-08
14
+ * Version information should not be required on dependencies in metadata.json
15
+
16
+ ### 5.11.1 / 2020-04-07
17
+ * Puppet module RPM logic handles `-rc0` suffix in `metadata.json`
18
+
1
19
  ### 5.11.0 / 2020-03-16
2
20
  * Add SIMP optional dependencies to RPM requires list
3
21
 
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 }
@@ -12,6 +12,7 @@ gemspec
12
12
  gem 'simp-build-helpers'
13
13
  gem 'simp-beaker-helpers'
14
14
  gem 'beaker-puppet_install_helper'
15
+ gem 'rake', '>= 12.3.3'
15
16
 
16
17
  if puppetversion
17
18
  gem 'puppet', puppetversion
@@ -99,9 +99,12 @@ class Simp::ComponentInfo
99
99
  require 'json'
100
100
  metadata_file = File.join(@component_dir, 'metadata.json')
101
101
  metadata = JSON.parse(File.read(metadata_file))
102
- @version = metadata['version']
103
- @release = nil
104
- fail("ERROR: Version missing from #{metadata_file}") if @version.nil?
102
+ fail("ERROR: Version missing from #{metadata_file}") if metadata['version'].nil?
103
+
104
+ @version = metadata['version'].split('-').first
105
+ rel_bits = metadata['version'].split('-')[1..-1]
106
+ @release = rel_bits.empty? ? nil : rel_bits.join('-')
107
+
105
108
 
106
109
  changelog_file = File.join(component_dir, 'CHANGELOG')
107
110
  unless File.exists?(changelog_file)
@@ -136,6 +139,23 @@ class Simp::ComponentInfo
136
139
  if $?.exitstatus != 0
137
140
  fail("Could not extract changelog from #{rpm_spec_files[0]}." +
138
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
139
159
  end
140
160
  @changelog = parse_changelog(raw_changelog, latest_version_only, verbose)
141
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?
@@ -15,28 +15,29 @@ module Simp::Rake::Build::RpmDeps
15
15
  # raises SIMPRpmDepVersionException if the dependency version
16
16
  # string cannot be parsed
17
17
  def self.get_version_requires(pkg, dep_version)
18
+ return ["Requires: #{pkg}"] if dep_version.nil?
19
+ return ["Requires: #{pkg} = #{$1}"] if dep_version =~ /^\s*(\d+\.\d+\.\d+)\s*$/
20
+
18
21
  requires = []
19
- if dep_version =~ /^\s*(\d+\.\d+\.\d+)\s*$/
20
- requires << "Requires: #{pkg} = #{$1}"
21
- else
22
- if dep_version.include?('x')
23
- dep_parts = dep_version.split('.')
24
-
25
- if dep_parts.count == 3
26
- dep_version = ">= #{dep_parts[0]}.#{dep_parts[1]}.0 < #{dep_parts[0].to_i + 1}.0.0"
27
- else
28
- dep_version = ">= #{dep_parts[0]}.0.0 < #{dep_parts[0].to_i + 1}.0.0"
29
- end
30
- end
31
22
 
32
- # metadata.json is a LOT more forgiving than the RPM spec file
33
- if dep_version =~ /^\s*(?:(?:([<>]=?)\s*(\d+\.\d+\.\d+))\s*(?:(<)\s*(\d+\.\d+\.\d+))?)\s*$/
34
- requires << "Requires: #{pkg} #{$1} #{$2}"
35
- requires << "Requires: #{pkg} #{$3} #{$4}" if $3
23
+ if dep_version.include?('x')
24
+ dep_parts = dep_version.split('.')
25
+
26
+ if dep_parts.count == 3
27
+ dep_version = ">= #{dep_parts[0]}.#{dep_parts[1]}.0 < #{dep_parts[0].to_i + 1}.0.0"
36
28
  else
37
- raise SIMPRpmDepVersionException.new
29
+ dep_version = ">= #{dep_parts[0]}.0.0 < #{dep_parts[0].to_i + 1}.0.0"
38
30
  end
39
31
  end
32
+
33
+ # metadata.json is a LOT more forgiving than the RPM spec file
34
+ if dep_version =~ /^\s*(?:(?:([<>]=?)\s*(\d+\.\d+\.\d+))\s*(?:(<)\s*(\d+\.\d+\.\d+))?)\s*$/
35
+ requires << "Requires: #{pkg} #{$1} #{$2}"
36
+ requires << "Requires: #{pkg} #{$3} #{$4}" if $3
37
+ else
38
+ raise SIMPRpmDepVersionException.new
39
+ end
40
+
40
41
  requires
41
42
  end
42
43
 
@@ -62,7 +62,7 @@ module Simp::Rake::Build
62
62
  else
63
63
  required_rpms['noarch'] << 'simp-rsync-skeleton'
64
64
  required_rpms['noarch'] << 'simp-environment-skeleton'
65
- required_rpms['noarch'] << 'simp-environment-selinux-policy'
65
+ required_rpms['noarch'] << 'simp-selinux-policy'
66
66
  end
67
67
 
68
68
  rpm_dir = File.join(@build_dir,'SIMP','RPMS')
@@ -196,14 +196,28 @@ end
196
196
 
197
197
  -- Get the Module Version
198
198
 
199
- local version_match = metadata:match('"version":%s+"(.-)"%s*,')
199
+ -- Note on '-rc0' style Release versions in metadata.json:
200
+ -- Some Puppet orgs (like voxpupuli) append '-rc0' to the module version
201
+ -- to denote prerelease status and act as a safety check (because the Forge
202
+ -- only accepts release in SemVer \d+\.\d+\.\d+ release format)
203
+ --
204
+ -- This code will remove a '-rc0' style prerelease string from the RPM
205
+ -- Version, and use it as the default RPM Release (instead of '-0')
200
206
 
207
+ local version_match = metadata:match('"version":%s+"(.-)"%s*,'):gsub('-.*','')
201
208
  if version_match then
202
209
  package_version = version_match
203
210
  else
204
211
  error("Could not find valid package version in 'metadata.json'", 0)
205
212
  end
206
213
 
214
+ -- Get the Module Release (if present)
215
+
216
+ local release_match = metadata:match('"version":%s+"[%d.]+-([^"]+)"')
217
+
218
+ if release_match then
219
+ package_release = release_match
220
+ end
207
221
  }
208
222
 
209
223
  %{lua:
@@ -196,14 +196,28 @@ end
196
196
 
197
197
  -- Get the Module Version
198
198
 
199
- local version_match = metadata:match('"version":%s+"(.-)"%s*,')
199
+ -- Note on '-rc0' style Release versions in metadata.json:
200
+ -- Some Puppet orgs (like voxpupuli) append '-rc0' to the module version
201
+ -- to denote prerelease status and act as a safety check (because the Forge
202
+ -- only accepts release in SemVer \d+\.\d+\.\d+ release format)
203
+ --
204
+ -- This code will remove a '-rc0' style prerelease string from the RPM
205
+ -- Version, and use it as the default RPM Release (instead of '-0')
200
206
 
207
+ local version_match = metadata:match('"version":%s+"(.-)"%s*,'):gsub('-.*','')
201
208
  if version_match then
202
209
  package_version = version_match
203
210
  else
204
211
  error("Could not find valid package version in 'metadata.json'", 0)
205
212
  end
206
213
 
214
+ -- Get the Module Release (if present)
215
+
216
+ local release_match = metadata:match('"version":%s+"[%d.]+-([^"]+)"')
217
+
218
+ if release_match then
219
+ package_release = release_match
220
+ end
207
221
  }
208
222
 
209
223
  %{lua:
@@ -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.0'
5
+ VERSION = '5.11.5'
6
6
  end
@@ -87,7 +87,7 @@ class Simp::RelChecks
87
87
  # determine mission-impacting files that have changed
88
88
  files_changed = `git diff tags/#{last_tag} --name-only`.strip.split("\n")
89
89
  files_changed.delete_if do |file|
90
- file[0] == '.' or file == 'Rakefile' or file =~ /^Gemfile|^spec\/|^doc\/|^rakelib\//
90
+ file[0] == '.' or file == 'Rakefile' or file =~ /^Gemfile|^spec\/|^doc\/|^rakelib\/|.*\.md\Z/
91
91
  end
92
92
 
93
93
  if files_changed.empty?
@@ -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
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -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,
@@ -7,14 +7,11 @@ describe Simp::ComponentInfo do
7
7
  }
8
8
 
9
9
  context 'with valid module input' do
10
- it 'loads version and changelog info' do
11
- component_dir = File.join(files_dir, 'module')
12
- info = Simp::ComponentInfo.new(component_dir)
13
- expect( info.component_dir ).to eq component_dir
14
- expect( info.type ).to eq :module
15
- expect( info.version ).to eq '3.8.0'
16
- expect( info.release ).to be nil
17
- expected_changelog = [
10
+ let(:component_dir){ File.join(files_dir, 'module') }
11
+ let(:info){ Simp::ComponentInfo.new(component_dir) }
12
+ let(:expected_release) { nil }
13
+ let(:expected_changelog) do
14
+ [
18
15
  {
19
16
  :date => 'Wed Nov 15 2017',
20
17
  :version => '3.8.0',
@@ -56,37 +53,28 @@ describe Simp::ComponentInfo do
56
53
  ]
57
54
  }
58
55
  ]
59
- expect(info.changelog).to eq expected_changelog
60
56
  end
61
57
 
62
- it 'loads version and latest changelog info' do
63
- component_dir = File.join(files_dir, 'module')
64
- info = Simp::ComponentInfo.new(component_dir, true)
65
- expect( info.component_dir ).to eq component_dir
66
- expect( info.type ).to eq :module
67
- expect( info.version ).to eq '3.8.0'
68
- expect( info.release ).to be nil
69
- expected_changelog = [
70
- {
71
- :date => 'Wed Nov 15 2017',
72
- :version => '3.8.0',
73
- :release => '0',
74
- :content => [
75
- '* Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 3.8.0-0',
76
- '- Disable deprecation warnings by default'
77
- ]
78
- },
79
- {
80
- :date => 'Mon Nov 06 2017',
81
- :version => '3.8.0',
82
- :release => '0',
83
- :content => [
84
- '* Mon Nov 06 2017 Tom Smith <tom.smith@simp.com> - 3.8.0-0',
85
- '- Fixes split failure when "findmnt" does not exist on Linux'
86
- ]
87
- }
88
- ]
89
- expect(info.changelog).to eq expected_changelog
58
+ shared_examples 'an instance with expected module data' do
59
+ it { expect( info.component_dir ).to eq component_dir }
60
+ it { expect( info.type ).to eq :module }
61
+ it { expect( info.version ).to eq '3.8.0' }
62
+ it { expect( info.release ).to eq expected_release }
63
+ it { expect(info.changelog).to eq expected_changelog }
64
+ end
65
+
66
+ it_behaves_like 'an instance with expected module data'
67
+
68
+ context 'with loads version and latest-version-only changelog info' do
69
+ let(:info){Simp::ComponentInfo.new(component_dir, true)}
70
+ let(:expected_changelog){ super()[0..1] }
71
+ it_behaves_like 'an instance with expected module data'
72
+ end
73
+
74
+ context 'with a module version containing a prerelease suffix (3.8.0-rc0)' do
75
+ let(:component_dir){ File.join(files_dir, 'module_with_prerelease_dash_in_version') }
76
+ let(:expected_release){ 'rc0' }
77
+ it_behaves_like 'an instance with expected module data'
90
78
  end
91
79
  end
92
80
 
@@ -269,10 +257,16 @@ describe Simp::ComponentInfo do
269
257
  /Could not extract version and release from /)
270
258
  end
271
259
 
272
- # This has to be a case in which version and release can be read
273
- # from spec file but the changelog (which is optional) can't. Could
274
- # be mocked, but would like a real-world test case.
275
- 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.
276
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
277
271
  end
278
272
  end
@@ -1 +1 @@
1
- spec/lib/simp/files/build/../testpackage.spec
1
+ ../testpackage.spec
@@ -0,0 +1,14 @@
1
+ * Wed Nov 15 2017 Mary Jones <mary.jones@simp.com> - 3.8.0-0
2
+ - Disable deprecation warnings by default
3
+
4
+ * Mon Nov 06 2017 Tom Smith <tom.smith@simp.com> - 3.8.0-0
5
+ - Fixes split failure when "findmnt" does not exist on Linux
6
+
7
+ * Thu Oct 26 2017 Mary Jones <mary.jones@simp.com> - 3.7.0-0
8
+ - Add Mod::Macaddress data type
9
+
10
+ * Tue Sep 26 2017 Joe Brown <joe.brown@simp.com> - 3.6.0-0
11
+ - Convert all 'sysctl' 'kernel.shm*' entries to Strings
12
+ - shmall and shmmax were causing Facter and newer versions of Puppet to crash
13
+ - See FACT-1732 for additional information
14
+ - Add Puppet function `mod::assert_metadata_os()`
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "simp-module",
3
+ "version": "3.8.0-rc0",
4
+ "author": "SIMP Team",
5
+ "summary": "A collection of common SIMP functions, facts, and types",
6
+ "license": "Apache-2.0",
7
+ "source": "https://github.com/simp/pupmod-simp-simplib",
8
+ "project_page": "https://github.com/simp/pupmod-simp-simplib",
9
+ "issues_url": "https://simp-project.atlassian.net",
10
+ "tags": [
11
+ "simp",
12
+ "functions",
13
+ "facts",
14
+ "types",
15
+ "alias",
16
+ "library"
17
+ ],
18
+ "dependencies": [
19
+
20
+ ],
21
+ "operatingsystem_support": [
22
+ {
23
+ "operatingsystem": "RedHat",
24
+ "operatingsystemrelease": [
25
+ "6",
26
+ "7"
27
+ ]
28
+ },
29
+ {
30
+ "operatingsystem": "CentOS",
31
+ "operatingsystemrelease": [
32
+ "6",
33
+ "7"
34
+ ]
35
+ }
36
+ ],
37
+ "requirements": [
38
+ {
39
+ "name": "puppet",
40
+ "version_requirement": ">= 4.7.0 < 6.0.0"
41
+ }
42
+ ],
43
+ "package_release_version": "0"
44
+ }
@@ -0,0 +1,32 @@
1
+ Name: testpackage
2
+ Version: 1.0.0
3
+ Release: rc0
4
+ Summary: dummy test package
5
+ BuildArch: noarch
6
+
7
+ License: Apache-2.0
8
+ URL: http://foo.bar
9
+
10
+ %description
11
+ A dummy package used to test Simp::RPM methods
12
+
13
+ %prep
14
+ exit 0
15
+
16
+ %build
17
+ exit 0
18
+
19
+
20
+ %install
21
+ exit 0
22
+
23
+ %clean
24
+ exit 0
25
+
26
+ %files
27
+ %doc
28
+
29
+
30
+ %changelog
31
+ * Wed Jun 10 2015 nobody
32
+ - some comment
@@ -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
@@ -16,7 +16,8 @@ describe 'Simp::Rake::Build::RpmDeps#get_version_requires' do
16
16
  "5.x" => ['Requires: pupmod-foo-bar >= 5.0.0',
17
17
  'Requires: pupmod-foo-bar < 6.0.0'],
18
18
  "6.4.x" => ['Requires: pupmod-foo-bar >= 6.4.0',
19
- 'Requires: pupmod-foo-bar < 7.0.0']
19
+ 'Requires: pupmod-foo-bar < 7.0.0'],
20
+ nil => ['Requires: pupmod-foo-bar']
20
21
  }.each do |input, output|
21
22
  it do
22
23
  expect(Simp::Rake::Build::RpmDeps::get_version_requires(pkg, input)).to eq output
@@ -31,8 +32,7 @@ describe 'Simp::Rake::Build::RpmDeps#get_version_requires' do
31
32
  }.to raise_error(SIMPRpmDepVersionException)
32
33
  end
33
34
 
34
- # FIXME regex doesn't catch this
35
- pending do
35
+ it( nil, :pending => "FIXME regex doesn't catch this" ) do
36
36
  expect{
37
37
  Simp::Rake::Build::RpmDeps::get_version_requires(pkg, '<= 3.0.0')
38
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
@@ -1 +1 @@
1
- spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -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,10 +28,10 @@ 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(
34
- ".travis.yml\nRakefile\nGemfile.lock\nspec/some_spec.rb\ndoc/index.html\nrakelib/mytasks.rake\n")
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
+ ".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"
37
37
  expect{ Simp::RelChecks.compare_latest_tag(component_dir) }.
@@ -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) }.
@@ -20,6 +20,9 @@ describe Simp::RPM do
20
20
  @d_rpm_file = File.join( dir, 'testpackage-1-0.el7.noarch.rpm' )
21
21
  @d_rpm_obj = Simp::RPM.new( @d_rpm_file )
22
22
 
23
+ @rc0_spec_file = File.join( dir, 'testpackage-rc0.spec' )
24
+ @rc0_spec_obj = Simp::RPM.new( @rc0_spec_file )
25
+
23
26
  #FIXME
24
27
  # @signed_rpm_file = File.join( dir, 'testpackage-1-0.noarch.rpm' )
25
28
  # @signed_rpm_obj = Simp::RPM.new( @signed_rpm_file )
@@ -85,6 +88,7 @@ describe Simp::RPM do
85
88
  expect( @m_spec_obj.version ).to eq '1'
86
89
  expect( @m_spec_obj.version('testpackage') ).to eq '1'
87
90
  expect( @m_spec_obj.version('testpackage-doc') ).to eq '1.0.1'
91
+ expect( @rc0_spec_obj.version ).to eq '1.0.0'
88
92
  end
89
93
 
90
94
  it 'fails when invalid package specified' do
@@ -103,6 +107,7 @@ describe Simp::RPM do
103
107
  expect( @m_spec_obj.release ).to eq '0'
104
108
  expect( @m_spec_obj.release('testpackage') ).to eq '0'
105
109
  expect( @m_spec_obj.release('testpackage-doc') ).to eq '2'
110
+ expect( @rc0_spec_obj.release ).to eq 'rc0'
106
111
  end
107
112
 
108
113
  it 'fails when invalid package specified' do
@@ -232,7 +237,7 @@ describe Simp::RPM do
232
237
  ENV['SIMP_RPM_dist'] = @pre_env
233
238
  end
234
239
  it 'returns dist' do
235
- Simp::RPM.stubs(:system_dist).returns('.testdist')
240
+ allow(Simp::RPM).to receive(:system_dist).and_return('.testdist')
236
241
  rpm_obj = Simp::RPM.new( @rpm_file )
237
242
  d_rpm_obj = Simp::RPM.new( @d_rpm_file )
238
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.0
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-03-25 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
@@ -534,6 +534,8 @@ files:
534
534
  - spec/lib/simp/files/componentinfo_spec/module_with_invalid_weekday_entry/metadata.json
535
535
  - spec/lib/simp/files/componentinfo_spec/module_with_malformed_metadata/CHANGELOG
536
536
  - spec/lib/simp/files/componentinfo_spec/module_with_malformed_metadata/metadata.json
537
+ - spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/CHANGELOG
538
+ - spec/lib/simp/files/componentinfo_spec/module_with_prerelease_dash_in_version/metadata.json
537
539
  - spec/lib/simp/files/componentinfo_spec/module_with_version_misordered_entries/CHANGELOG
538
540
  - spec/lib/simp/files/componentinfo_spec/module_with_version_misordered_entries/metadata.json
539
541
  - spec/lib/simp/files/componentinfo_spec/module_without_changelog/metadata.json
@@ -568,6 +570,7 @@ files:
568
570
  - spec/lib/simp/files/testpackage-1-0.noarch.rpm
569
571
  - spec/lib/simp/files/testpackage-dist.spec
570
572
  - spec/lib/simp/files/testpackage-multi.spec
573
+ - spec/lib/simp/files/testpackage-rc0.spec
571
574
  - spec/lib/simp/files/testpackage.spec
572
575
  - spec/lib/simp/local_gpg_signing_key_spec.rb.beaker-only
573
576
  - spec/lib/simp/packer/iso_vars_json_spec.rb
@@ -647,8 +650,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
647
650
  - !ruby/object:Gem::Version
648
651
  version: '0'
649
652
  requirements: []
650
- rubyforge_project:
651
- rubygems_version: 2.7.7
653
+ rubygems_version: 3.0.8
652
654
  signing_key:
653
655
  specification_version: 4
654
656
  summary: SIMP rake helpers