simp-rake-helpers 5.11.0 → 5.11.5

Sign up to get free protection for your applications and to get access to all the features.
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