simp-beaker-helpers 1.24.0 → 1.24.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4403e18b35abbd1622d13e0fac49c4c22a20bf6b80b142b9db9fb5743a96bdf0
4
- data.tar.gz: a490a356a2e18cda7611213d53e0202a3790377e722cd23d56228766d93351a5
3
+ metadata.gz: f276688200465dbee32f6af8cf2e31a665004ab297b5b0d664d94289d198c0db
4
+ data.tar.gz: 64c8554ce99bb2bd90b77cfdf08347e484c50ed5729fdb1920c19d9b268115bc
5
5
  SHA512:
6
- metadata.gz: 9d9ab525dd5345fac7fb7c66fb8aab2c8449b6fce2e5812518a4341d8bdbd5a208e5a31c5b12fc912e664f1f4dbb11fb41419576eddd1fe09844f4aaa8af4cf2
7
- data.tar.gz: 26a688025f283009ba338823369e26a2d65db16db212592ab9fe3432f3c1892b251ec176c1c0faa6a5f7abab727c4d2d25994c8af316a199027279a4ffec02d1
6
+ metadata.gz: a47fe8210f0b72074befb37c61f09bec2ac90e3e967e677c7fcbee20f1f72c2b66216553b0caaaaee6ecf593e39fba7ce82ec260dca0f0d9d3a3499d41e7cc54
7
+ data.tar.gz: bbe694671ca0ce55f70075bb40260ca114b10937294558318b164bd94e60f3c1bbc9fc84e64fb877731e1f9c031da431ac9f0c33381257527a89ee803cda5915
data/.fixtures.yml CHANGED
@@ -7,6 +7,3 @@ fixtures:
7
7
  disa_stig-el7-baseline:
8
8
  repo: https://github.com/mitre/redhat-enterprise-linux-7-stig-baseline
9
9
  target: spec/fixtures/inspec_deps/inspec_profiles/profiles
10
- disa_stig-el8-baseline:
11
- repo: https://github.com/mitre/redhat-enterprise-linux-8-stig-baseline
12
- target: spec/fixtures/inspec_deps/inspec_profiles/profiles
@@ -1,5 +1,5 @@
1
1
  # Run all tests as GitHub Actions
2
- name: Unit Tests
2
+ name: Acceptance Tests
3
3
  on:
4
4
  push:
5
5
  branches:
@@ -21,7 +21,7 @@
21
21
  #
22
22
  # NOTES:
23
23
  #
24
- # * The CHANGLOG text is altered to remove RPM-style date headers, which don't
24
+ # * The CHANGELOG text is altered to remove RPM-style date headers, which don't
25
25
  # render well as markdown on the GitHub release pages
26
26
  #
27
27
  # * By default, the gem is built and released using the standard rake tasks
@@ -37,12 +37,15 @@
37
37
  # All keys are optional.
38
38
  #
39
39
  ---
40
- name: 'Tag: Release to GitHub & rubygems.org'
40
+ name: 'Tag: Release to GitHub + rubygems.org (no RPMS)'
41
41
 
42
42
  on:
43
43
  push:
44
44
  tags:
45
+ # NOTE: These filter patterns aren't actually regexes:
46
+ # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
45
47
  - '[0-9]+\.[0-9]+\.[0-9]+'
48
+ - '[0-9]+\.[0-9]+\.[0-9]+\-[a-z]+[0-9]+'
46
49
 
47
50
  env:
48
51
  PUPPET_VERSION: '~> 6'
@@ -52,11 +55,7 @@ jobs:
52
55
  releng-checks:
53
56
  name: "RELENG checks"
54
57
  if: github.repository_owner == 'simp'
55
- runs-on: ubuntu-18.04
56
- outputs:
57
- build_command: ${{ steps.commands.outputs.build_command }}
58
- release_command: ${{ steps.commands.outputs.release_command }}
59
- pkg_dir: ${{ steps.commands.outputs.pkg_dir }}
58
+ runs-on: ubuntu-latest
60
59
  steps:
61
60
  - name: "Assert '${{ github.ref }}' is a tag"
62
61
  run: '[[ "$GITHUB_REF" =~ ^refs/tags/ ]] || { echo "::error ::GITHUB_REF is not a tag: ${GITHUB_REF}"; exit 1 ; }'
@@ -64,7 +63,7 @@ jobs:
64
63
  with:
65
64
  ref: ${{ github.ref }}
66
65
  clean: true
67
- - name: Determing build and release commands
66
+ - name: Determine build and release commands
68
67
  id: commands
69
68
  run: |
70
69
  # By default, these are the standard tasks from "bundler/gem_tasks"
@@ -92,9 +91,7 @@ jobs:
92
91
  ruby-version: 2.5
93
92
  bundler-cache: true
94
93
  - name: Test build the package
95
- env:
96
- GEM_BUILD_COMMAND: ${{ steps.commands.outputs.build_command }}
97
- run: "$GEM_BUILD_COMMAND"
94
+ run: "${{ steps.commands.outputs.build_command }}"
98
95
  - name: "Assert '${{ github.ref }}' matches the package version"
99
96
  run: |
100
97
  tag="${GITHUB_REF/refs\/tags\//}"
@@ -109,7 +106,9 @@ jobs:
109
106
  name: Deploy GitHub Release
110
107
  needs: [ releng-checks ]
111
108
  if: github.repository_owner == 'simp'
112
- runs-on: ubuntu-18.04
109
+ runs-on: ubuntu-latest
110
+ outputs:
111
+ prerelease: ${{ steps.tag-check.outputs.prerelease }}
113
112
  steps:
114
113
  - name: Checkout code
115
114
  uses: actions/checkout@v2
@@ -117,6 +116,7 @@ jobs:
117
116
  ref: ${{ github.ref }}
118
117
  clean: true
119
118
  fetch-depth: 0
119
+
120
120
  - name: Get tag & annotation info (${{github.ref}})
121
121
  id: tag-check
122
122
  run: |
@@ -124,7 +124,19 @@ jobs:
124
124
  annotation="$(git for-each-ref "$GITHUB_REF" --format='%(contents)' --count=1)"
125
125
  annotation_title="$(echo "$annotation" | head -1)"
126
126
 
127
+
128
+ if [[ "$tag" =~ ^(simp-|v)?[0-9]+\.[0-9]+\.[0-9]+(-(rc|alpha|beta|pre|post)?([0-9]+)?)?$ ]]; then
129
+ if [ -n "${BASH_REMATCH[2]}" ]; then
130
+ prerelease=yes
131
+ annotation_title="Pre-release of ${tag}"
132
+ fi
133
+ else
134
+ printf '::error ::Release Tag format is not SemVer, X.Y.Z-R, X.Y.Z-<prerelease>: "%s"\n' "$RELEASE_TAG"
135
+ exit 88
136
+ fi
137
+
127
138
  echo "::set-output name=tag::${tag}"
139
+ echo "::set-output name=prerelease::${prerelease}"
128
140
  echo "::set-output name=annotation_title::${annotation_title}"
129
141
 
130
142
  # Prepare annotation body as a file for the next step
@@ -146,14 +158,14 @@ jobs:
146
158
  tag_name: ${{ github.ref }}
147
159
  release_name: ${{ steps.tag-check.outputs.annotation_title }}
148
160
  body_path: /tmp/annotation.body
161
+ prerelease: ${{ steps.tag-check.outputs.prerelease == 'yes'}}
149
162
  draft: false
150
- prerelease: false
151
163
 
152
164
  deploy-rubygem:
153
165
  name: Deploy RubyGem Release
154
- needs: [ releng-checks ]
155
- if: github.repository_owner == 'simp'
156
- runs-on: ubuntu-18.04
166
+ needs: [ releng-checks, create-github-release ]
167
+ if: (github.repository_owner == 'simp') && (needs.create-github-release.outputs.prerelease != 'yes')
168
+ runs-on: ubuntu-latest
157
169
  env:
158
170
  RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
159
171
  BUILD_COMMAND: ${{ needs.releng-checks.outputs.build_command }}
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ### 1.24.3 / 2022-04-10
2
+ * Fixed:
3
+ * Added python-setuptools to the list of required packages
4
+
5
+ ### 1.24.2 / 2022-03-09
6
+ * Fixed:
7
+ * Prevent `spec/` directory symlink recursion in `copy_fixture_modules_to`
8
+ * Update the derivatives workaround to insert an inert line instead of
9
+ commenting out the previous line to allow for logic updates
10
+ * Addressed a bug where passing an empty exceptions array would produce an
11
+ invalid xpath query
12
+ * Ensure that the new SIMP community RPMs are used
13
+
14
+ ### 1.24.1 / 2021-10-27
15
+ * Fixed:
16
+ * Worked around a bug in 'puppet lookup' - PUP-11402
17
+ * Updated calls to the operating system fact when connecting to RHSM
18
+
1
19
  ### 1.24.0 / 2021-10-05
2
20
  * Fixed:
3
21
  * Pinned the version of inspec to 4.39.0 since 4.41 broke tag processing
@@ -34,9 +34,7 @@ module Simp::BeakerHelpers
34
34
  # The name of the profile against which to run
35
35
  #
36
36
  def initialize(sut, profile)
37
- # The 4.41 release is currently broken
38
- # @inspec_version = ENV['BEAKER_inspec_version'] || 'latest'
39
- @inspec_version = ENV['BEAKER_inspec_version'] || '4.39.0'
37
+ @inspec_version = ENV['BEAKER_inspec_version'] || 'latest'
40
38
 
41
39
  @sut = sut
42
40
 
@@ -23,11 +23,12 @@ module Simp::BeakerHelpers
23
23
  'PyYAML',
24
24
  'cmake',
25
25
  'git',
26
- 'openscap-scanner',
27
26
  'openscap-python',
27
+ 'openscap-scanner',
28
28
  'openscap-utils',
29
29
  'python-jinja2',
30
- 'python-lxml'
30
+ 'python-lxml',
31
+ 'python-setuptools'
31
32
  ]
32
33
 
33
34
  EL8_PACKAGES = [
@@ -41,6 +42,7 @@ module Simp::BeakerHelpers
41
42
  'python3-jinja2',
42
43
  'python3-lxml',
43
44
  'python3-pyyaml',
45
+ 'python3-setuptools',
44
46
  'libarchive'
45
47
  ]
46
48
 
@@ -278,9 +280,8 @@ module Simp::BeakerHelpers
278
280
 
279
281
  xpath_query << ')' if filter.size > 1
280
282
 
281
- if exclusions
282
- exclusions = Array(exclusions)
283
-
283
+ exclusions = Array(exclusions)
284
+ unless exclusions.empty?
284
285
  xpath_query << 'and not('
285
286
 
286
287
  xpath_query << exclusions.map do |exl|
@@ -419,7 +420,7 @@ module Simp::BeakerHelpers
419
420
  #
420
421
  # This isn't 100% correct but it's "good enough" for an automated CI
421
422
  # environment to tell us if something is critically out of alignment.
422
- on(@sut, %(cd scap-content/build-scripts; sed -ci 's/ssg.build_derivatives.profile_handling/#ssg.build_derivatives.profile_handling/g' enable_derivatives.py))
423
+ on(@sut, %(cd scap-content/build-scripts; sed -ci 's/ssg.build_derivatives.profile_handling/__simp_dontcare__ = None #ssg.build_derivatives.profile_handling/g' enable_derivatives.py))
423
424
 
424
425
  on(@sut, %(cd scap-content/build; cmake ../; make -j4 #{OS_INFO[@os][@os_rel]['ssg']['build_target']}-content && cp *ds.xml #{@scap_working_dir}))
425
426
  end
@@ -1,5 +1,5 @@
1
1
  module Simp; end
2
2
 
3
3
  module Simp::BeakerHelpers
4
- VERSION = '1.24.0'
4
+ VERSION = '1.24.3'
5
5
  end
@@ -411,7 +411,7 @@ module Simp::BeakerHelpers
411
411
  begin
412
412
  tarfile = "#{Simp::BeakerHelpers.tmpname}.tar"
413
413
 
414
- excludes = PUPPET_MODULE_INSTALL_IGNORE.map do |x|
414
+ excludes = (PUPPET_MODULE_INSTALL_IGNORE + ['spec']).map do |x|
415
415
  x = "--exclude '*/#{x}'"
416
416
  end.join(' ')
417
417
 
@@ -810,8 +810,8 @@ module Simp::BeakerHelpers
810
810
  rhsm_opts.merge!(opts)
811
811
  end
812
812
 
813
- os = fact_on(sut, 'operatingsystem').strip
814
- os_release = fact_on(sut, 'operatingsystemmajrelease').strip
813
+ os = fact_on(sut, 'os.name').strip
814
+ os_release = fact_on(sut, 'os.release.major').strip
815
815
 
816
816
  if os == 'RedHat'
817
817
  unless rhsm_opts[:username] && rhsm_opts[:password]
@@ -1244,8 +1244,11 @@ module Simp::BeakerHelpers
1244
1244
  #
1245
1245
  # @returns [String] Path to the Hieradata directory on the target system
1246
1246
  def hiera_datadir(sut)
1247
+ # A workaround for PUP-11042
1248
+ sut_environment = sut.puppet_configprint['environment']
1249
+
1247
1250
  # This output lets us know where Hiera is configured to look on the system
1248
- puppet_lookup_info = on(sut, 'puppet lookup --explain test__simp__test', :silent => true).output.strip.lines
1251
+ puppet_lookup_info = on(sut, "puppet lookup --explain --environment #{sut_environment} test__simp__test", :silent => true).output.strip.lines
1249
1252
 
1250
1253
  if sut.puppet_configprint['manifest'].nil? || sut.puppet_configprint['manifest'].empty?
1251
1254
  fail("No output returned from `puppet config print manifest` on #{sut}")
@@ -1495,10 +1498,12 @@ module Simp::BeakerHelpers
1495
1498
  block_on(suts, :run_in_parallel => parallel) do |sut|
1496
1499
  install_package_unless_present_on(sut, 'yum-utils')
1497
1500
 
1501
+ release = fact_on(sut, 'os.release.major')
1502
+
1498
1503
  install_package_unless_present_on(
1499
1504
  sut,
1500
1505
  'simp-release-community',
1501
- "https://download.simp-project.com/simp-release-community.rpm",
1506
+ "https://download.simp-project.com/simp-release-community.el#{release}.rpm"
1502
1507
  )
1503
1508
 
1504
1509
  to_disable = disable.dup
@@ -21,14 +21,6 @@ HOSTS:
21
21
  box: generic/centos8
22
22
  hypervisor: <%= hypervisor %>
23
23
 
24
- el8-0:
25
- roles:
26
- - el8
27
- platform: el-8-x86_64
28
- box: centos/8
29
- box_version: "1905.1"
30
- hypervisor: <%= hypervisor %>
31
-
32
24
  CONFIG:
33
25
  log_level: verbose
34
26
  type: aio
@@ -1 +1 @@
1
- spec/acceptance/suites/default/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/acceptance/suites/fips_from_fixtures/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/acceptance/suites/inspec/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/acceptance/suites/snapshot/../../nodesets
1
+ ../../nodesets
@@ -1 +1 @@
1
- spec/acceptance/suites/ssg/../../nodesets
1
+ ../../nodesets
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simp-beaker-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.24.0
4
+ version: 1.24.3
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: 2021-10-26 00:00:00.000000000 Z
12
+ date: 2022-04-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: beaker
@@ -254,11 +254,8 @@ files:
254
254
  - spec/acceptance/suites/windows/nodesets/win2016.yml
255
255
  - spec/acceptance/suites/windows/nodesets/win2019.yml
256
256
  - spec/fixtures/inspec_profiles/CentOS-7-disa_stig
257
- - spec/fixtures/inspec_profiles/CentOS-8-disa_stig
258
257
  - spec/fixtures/inspec_profiles/RedHat-7-disa_stig/controls/00_Control_Selector.rb
259
258
  - spec/fixtures/inspec_profiles/RedHat-7-disa_stig/inspec.yml
260
- - spec/fixtures/inspec_profiles/RedHat-8-disa_stig/controls/00_Control_Selector.rb
261
- - spec/fixtures/inspec_profiles/RedHat-8-disa_stig/inspec.yml
262
259
  - spec/lib/simp/beaker_helpers_spec.rb
263
260
  - spec/spec_helper.rb
264
261
  - spec/spec_helper_acceptance.rb
@@ -282,9 +279,48 @@ required_rubygems_version: !ruby/object:Gem::Requirement
282
279
  - !ruby/object:Gem::Version
283
280
  version: '0'
284
281
  requirements: []
285
- rubyforge_project:
286
- rubygems_version: 2.7.6.3
282
+ rubygems_version: 3.0.9
287
283
  signing_key:
288
284
  specification_version: 4
289
285
  summary: beaker helper methods for SIMP
290
- test_files: []
286
+ test_files:
287
+ - spec/acceptance/nodesets/default.yml
288
+ - spec/acceptance/nodesets/docker.yml
289
+ - spec/acceptance/nodesets/oel.yml
290
+ - spec/acceptance/nodesets/ubuntu.yml
291
+ - spec/acceptance/suites/default/check_puppet_version_spec.rb
292
+ - spec/acceptance/suites/default/enable_fips_spec.rb
293
+ - spec/acceptance/suites/default/fixture_modules_spec.rb
294
+ - spec/acceptance/suites/default/install_simp_deps_repo_spec.rb
295
+ - spec/acceptance/suites/default/nodesets
296
+ - spec/acceptance/suites/default/pki_tests_spec.rb
297
+ - spec/acceptance/suites/default/set_hieradata_on_spec.rb
298
+ - spec/acceptance/suites/default/write_hieradata_to_spec.rb
299
+ - spec/acceptance/suites/fips_from_fixtures/00_default_spec.rb
300
+ - spec/acceptance/suites/fips_from_fixtures/metadata.yml
301
+ - spec/acceptance/suites/fips_from_fixtures/nodesets
302
+ - spec/acceptance/suites/inspec/00_default_spec.rb
303
+ - spec/acceptance/suites/inspec/metadata.yml
304
+ - spec/acceptance/suites/inspec/nodesets
305
+ - spec/acceptance/suites/offline/00_default_spec.rb
306
+ - spec/acceptance/suites/offline/README
307
+ - spec/acceptance/suites/offline/nodesets/default.yml
308
+ - spec/acceptance/suites/puppet_collections/00_default_spec.rb
309
+ - spec/acceptance/suites/puppet_collections/metadata.yml
310
+ - spec/acceptance/suites/snapshot/00_snapshot_test_spec.rb
311
+ - spec/acceptance/suites/snapshot/10_general_usage_spec.rb
312
+ - spec/acceptance/suites/snapshot/nodesets
313
+ - spec/acceptance/suites/ssg/00_default_spec.rb
314
+ - spec/acceptance/suites/ssg/metadata.yml
315
+ - spec/acceptance/suites/ssg/nodesets
316
+ - spec/acceptance/suites/windows/00_default_spec.rb
317
+ - spec/acceptance/suites/windows/metadata.yml
318
+ - spec/acceptance/suites/windows/nodesets/default.yml
319
+ - spec/acceptance/suites/windows/nodesets/win2016.yml
320
+ - spec/acceptance/suites/windows/nodesets/win2019.yml
321
+ - spec/fixtures/inspec_profiles/CentOS-7-disa_stig
322
+ - spec/fixtures/inspec_profiles/RedHat-7-disa_stig/controls/00_Control_Selector.rb
323
+ - spec/fixtures/inspec_profiles/RedHat-7-disa_stig/inspec.yml
324
+ - spec/lib/simp/beaker_helpers_spec.rb
325
+ - spec/spec_helper.rb
326
+ - spec/spec_helper_acceptance.rb
@@ -1 +0,0 @@
1
- spec/fixtures/inspec_profiles/RedHat-8-disa_stig
@@ -1,45 +0,0 @@
1
- skips = {
2
- 'V-72209' => 'Cannot guarantee a remote syslog server during test'
3
- }
4
- overrides = [ 'V-72091' ]
5
- subsystems = []
6
-
7
- require_controls 'disa_stig-el8-baseline' do
8
- skips.each_pair do |ctrl, reason|
9
- control ctrl do
10
- describe "Skip #{ctrl}" do
11
- skip "Reason: #{skips[ctrl]}" do
12
- end
13
- end
14
- end
15
- end
16
-
17
- @conf['profile'].info[:controls].each do |ctrl|
18
- next if (overrides + skips.keys).include?(ctrl[:id])
19
-
20
- if subsystems.empty?
21
- control ctrl[:id]
22
- else
23
- tags = ctrl[:tags]
24
- if tags && tags[:subsystems]
25
- subsystems.each do |subsystem|
26
- if tags[:subsystems].include?(subsystem)
27
- control ctrl[:id]
28
- end
29
- end
30
- end
31
- end
32
- end
33
-
34
- ## Overrides ##
35
-
36
- # There's no email server to send anything to by default so syslog is a safer
37
- # default for processing.
38
- control 'V-72091' do
39
- overrides << self.to_s
40
-
41
- describe auditd_conf do
42
- its('space_left_action.downcase') { should cmp 'syslog' }
43
- end
44
- end
45
- end
@@ -1,14 +0,0 @@
1
- name: EL8 STIG
2
- title: STIG for EL 8
3
- supports:
4
- - os-family: redhat
5
- maintainer: SIMP Team
6
- copyright: Onyx Point, Inc.
7
- copyright_email: simp@onyxpoint.com
8
- license: Apache-2.0
9
- summary: |
10
- A collection of InSpec tests
11
- version: 0.0.1
12
- depends:
13
- - name: disa_stig-el8-baseline
14
- path: ../../inspec_deps/inspec_profiles/profiles/disa_stig-el8-baseline