simp-beaker-helpers 1.24.0 → 1.24.3

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