simp-beaker-helpers 1.28.0 → 1.29.0

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: 893037080c5711de66388dabf435c509163179798e9dd79d1f842a45e1ab4cc2
4
- data.tar.gz: be745da1931e76ba7ec1ee393da84563ef7b35f7aaf915b52a4d73228490db1c
3
+ metadata.gz: 25fe1e94533f021b08b45d117546d0117a068a85e2087848917554341db0bff8
4
+ data.tar.gz: 907168ef1038666cffeee8101f66471a6eda6b6a69e925c2731fa17b2cb2ef2a
5
5
  SHA512:
6
- metadata.gz: f6abb6b44e5489fe7d18111076140f560959076c79815fce68793346353a0d60d8071cc67407376c1f4a2d033d363100efc77f6a7ef6cca877a44ef699623402
7
- data.tar.gz: d03bbcb53b3f74d8f3d907b878cc46b7991057e18a179257342bf9533f96216e5374d16066095f7e80e08df381576641b87d7f7d5c8a3dcb8826040f7266663a
6
+ metadata.gz: f4cf5a2c52657b1d16ca89679e64c9ac5de4d82def72b4f9dd383538c77dfc7ca642f44f5db74c2cbf68700bd44f9ac3907adb8db98b4af262efa6fd7d08930d
7
+ data.tar.gz: 15ff184de51d666174c1294ae38bdc33ba662f562a4aea5cc5b0497efccc2cf9285a14e37b3e81c621754f5b26654b623787b3dc3161ee9e5b79cccb26b2f276
@@ -67,7 +67,7 @@ jobs:
67
67
  outputs:
68
68
  valid: ${{ steps.validate-glci-file.outputs.valid }}
69
69
  steps:
70
- - uses: actions/checkout@v2
70
+ - uses: actions/checkout@v3
71
71
  with:
72
72
  repository: ${{ github.event.pull_request.head.repo.full_name }}
73
73
  ref: ${{ github.event.pull_request.head.ref }}
@@ -80,11 +80,11 @@ jobs:
80
80
 
81
81
  contributor-permissions:
82
82
  name: 'PR contributor check'
83
- runs-on: ubuntu-18.04
83
+ runs-on: ubuntu-latest
84
84
  outputs:
85
85
  permitted: ${{ steps.user-repo-permissions.outputs.permitted }}
86
86
  steps:
87
- - uses: actions/github-script@v3
87
+ - uses: actions/github-script@v6
88
88
  id: user-repo-permissions
89
89
  with:
90
90
  github-token: ${{secrets.GITHUB_TOKEN}}
@@ -135,7 +135,7 @@ jobs:
135
135
  # - Not implemented: For some reason, this conditional always fails
136
136
  # - Unnecessary if on>pull_request_target>types doesn't include 'closed'
137
137
  if: github.event_name == 'pull_request_target' && ( github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' ) && github.event.pull_request.merged != 'true' && needs.glci-syntax.outputs.valid == 'true' && needs.contributor-permissions.outputs.permitted == 'true'
138
- runs-on: ubuntu-18.04
138
+ runs-on: ubuntu-latest
139
139
  steps:
140
140
  # Things we'd like to do:
141
141
  # - [ ] if there's no GitLab mirror, make one
@@ -145,7 +145,7 @@ jobs:
145
145
  # - "created|waiting_for_resource|preparing|pending|running"
146
146
  # - Exception: don't cancel existing pipeline for our own commit
147
147
  # - [x] if PR: force-push branch to GitLab
148
- - uses: actions/checkout@v2
148
+ - uses: actions/checkout@v3
149
149
  if: needs.contributor-permissions.outputs.permitted == 'true'
150
150
  with:
151
151
  clean: true
@@ -40,9 +40,9 @@ jobs:
40
40
  # `on` section is inadventently modified without considering the security
41
41
  # implications.
42
42
  if: github.event_name == 'pull_request_target' && github.event.action == 'closed'
43
- runs-on: ubuntu-18.04
43
+ runs-on: ubuntu-latest
44
44
  steps:
45
- - uses: actions/checkout@v2
45
+ - uses: actions/checkout@v3
46
46
  with:
47
47
  repository: ${{ github.event.pull_request.head.repo.full_name }}
48
48
  ref: ${{ github.event.pull_request.head.ref }}
@@ -2,7 +2,7 @@
2
2
  # ------------------------------------------------------------------------------
3
3
  #
4
4
  # NOTICE: **This file is maintained with puppetsync**
5
- #
5
+
6
6
  # This file is updated automatically as part of a standardized asset baseline.
7
7
  #
8
8
  # The next baseline sync will overwrite any local changes to this file!
@@ -42,7 +42,7 @@ on:
42
42
  jobs:
43
43
  glci-syntax:
44
44
  name: '.gitlab-ci.yml Syntax'
45
- runs-on: ubuntu-18.04
45
+ runs-on: ubuntu-latest
46
46
  outputs:
47
47
  valid: ${{ steps.validate-glci-file.outputs.valid }}
48
48
  pr_head_ref: ${{ steps.get-pr.outputs.pr_head_ref }}
@@ -50,7 +50,7 @@ jobs:
50
50
  pr_head_label: ${{ steps.get-pr.outputs.pr_head_label }}
51
51
  pr_head_full_name: ${{ steps.get-pr.outputs.pr_full_name }}
52
52
  steps:
53
- - uses: actions/github-script@v3
53
+ - uses: actions/github-script@v6
54
54
  id: get-pr
55
55
  with:
56
56
  github-token: ${{secrets.NO_SCOPE_GITHUB_TOKEN}}
@@ -90,7 +90,7 @@ jobs:
90
90
  core.setOutput( 'pr_head_ref', pr.data.head.ref )
91
91
  core.setOutput( 'pr_head_label', pr.data.head.label )
92
92
  core.setOutput( 'pr_head_full_name', pr.data.head.full_name )
93
- - uses: actions/checkout@v2
93
+ - uses: actions/checkout@v3
94
94
  with:
95
95
  repository: ${{ steps.get-pr.outputs.pr_head_full_name }}
96
96
  ref: ${{ steps.get-pr.outputs.pr_head_sha }}
@@ -106,9 +106,9 @@ jobs:
106
106
  trigger-when-user-has-repo-permissions:
107
107
  name: 'Trigger CI'
108
108
  needs: [ glci-syntax ]
109
- runs-on: ubuntu-18.04
109
+ runs-on: ubuntu-latest
110
110
  steps:
111
- - uses: actions/checkout@v2
111
+ - uses: actions/checkout@v3
112
112
  with:
113
113
  repository: ${{ needs.glci-syntax.outputs.pr_head_full_name }}
114
114
  ref: ${{ needs.glci-syntax.outputs.pr_head_sha }}
@@ -129,7 +129,7 @@ jobs:
129
129
  ### needs: [ glci-syntax ]
130
130
  ### name: 'Examine Context contents'
131
131
  ### if: always()
132
- ### runs-on: ubuntu-18.04
132
+ ### runs-on: ubuntu-latest
133
133
  ### steps:
134
134
  ### - name: Dump contexts
135
135
  ### env:
@@ -33,7 +33,7 @@ on:
33
33
  types: [opened, reopened, synchronize]
34
34
 
35
35
  env:
36
- PUPPET_VERSION: '~> 6'
36
+ PUPPET_VERSION: '~> 7'
37
37
 
38
38
  jobs:
39
39
  ruby-style:
@@ -58,12 +58,9 @@ jobs:
58
58
  strategy:
59
59
  matrix:
60
60
  puppet:
61
- - label: 'Puppet 6.18 [SIMP 6.5/PE 2019.8]'
62
- puppet_version: '~> 6.18.0'
61
+ - label: 'Puppet 6.x [SIMP 6.5/PE 2019.8]'
62
+ puppet_version: '~> 6.0'
63
63
  ruby_version: '2.5'
64
- - label: 'Puppet 5.5 [SIMP 6.4/PE 2018.1]'
65
- puppet_version: '~> 5.5.22'
66
- ruby_version: '2.4'
67
64
  - label: 'Puppet 7.x'
68
65
  puppet_version: '~> 7.0'
69
66
  ruby_version: '2.7'
@@ -63,7 +63,7 @@ jobs:
63
63
  steps:
64
64
  - name: "Assert '${{ github.ref }}' is a tag"
65
65
  run: '[[ "$GITHUB_REF" =~ ^refs/tags/ ]] || { echo "::error ::GITHUB_REF is not a tag: ${GITHUB_REF}"; exit 1 ; }'
66
- - uses: actions/checkout@v2
66
+ - uses: actions/checkout@v3
67
67
  with:
68
68
  ref: ${{ github.ref }}
69
69
  clean: true
@@ -115,7 +115,7 @@ jobs:
115
115
  prerelease: ${{ steps.tag-check.outputs.prerelease }}
116
116
  steps:
117
117
  - name: Checkout code
118
- uses: actions/checkout@v2
118
+ uses: actions/checkout@v3
119
119
  with:
120
120
  ref: ${{ github.ref }}
121
121
  clean: true
@@ -177,7 +177,7 @@ jobs:
177
177
  PKG_DIR: ${{ needs.releng-checks.outputs.pkg_dir }}
178
178
  steps:
179
179
  - name: Checkout code
180
- uses: actions/checkout@v2
180
+ uses: actions/checkout@v3
181
181
  with:
182
182
  ref: ${{ github.ref }}
183
183
  clean: true
data/.gitlab-ci.yml CHANGED
@@ -25,7 +25,7 @@ variables:
25
25
  # anchors. If it is still `UNDEFINED`, all the other setting from the job's
26
26
  # anchor are also missing.
27
27
  PUPPET_VERSION: 'UNDEFINED' # <- Matrixed jobs MUST override this (or fail)
28
- BUNDLER_VERSION: '1.17.1'
28
+ BUNDLER_VERSION: '2.2.19'
29
29
  SIMP_MATRIX_LEVEL: '1'
30
30
  SIMP_FORCE_RUN_MATRIX: 'no'
31
31
 
@@ -37,22 +37,24 @@ variables:
37
37
  BUNDLE_BIN: .vendor/gem_install/bin
38
38
  BUNDLE_NO_PRUNE: 'true'
39
39
 
40
+ .snippets:
41
+ before_beaker_google:
42
+ # Logic for beaker-google environments
43
+ - echo -e "\e[0Ksection_start:`date +%s`:before_script05[collapsed=true]\r\e[0KGCP environment checks"
44
+ - "if [ \"$BEAKER_HYPERVISOR\" == google ]; then mkdir -p ~/.ssh; chmod 700 ~/.ssh; test -f ~/.ssh/google_compute_engine || ssh-keygen -f ~/.ssh/google_compute_engine < /dev/null; echo 'gem \"beaker-google\"' >> Gemfile.local ; fi"
45
+ - echo -e "\e[0Ksection_end:`date +%s`:before_script05\r\e[0K"
40
46
 
41
- # bundler dependencies + caching, optional RVM setup, with diagnostic output
42
- # --------------------------------------------------------------------------
43
- .setup_bundler_env: &setup_bundler_env
44
- cache:
45
- # Cache bundler gems between pipelines for each Ruby version
46
- key: "${CI_PROJECT_NAMESPACE}_ruby-${MATRIX_RUBY_VERSION}_bundler"
47
- paths:
48
- - '.vendor'
49
- before_script:
50
- - 'ruby -e "puts %(\n\n), %q(=)*80, %(\nSIMP-relevant Environment Variables:\n\n#{e=ENV.keys.grep(/^PUPPET|^SIMP|^BEAKER|MATRIX/); pad=e.map{|x| x.size}.max+1; e.map{|v| %( * #{%(#{v}:).ljust(pad)} #{39.chr + ENV[v] + 39.chr}\n)}.join}\n), %q(=)*80, %(\n\n)"'
47
+ before:
48
+ # Print important environment variables that may affect this job
49
+ - 'ruby -e "puts %(\n\n), %q(=)*80, %(\nSIMP-relevant Environment Variables:\n\n#{e=ENV.keys.grep(/^PUPPET|^SIMP|^BEAKER|MATRIX|GOOGLE/); pad=((e.map{|x| x.size}.max||0)+1); e.map{|v| %( * #{%(#{v}:).ljust(pad)} #{39.chr + ENV[v] + 39.chr}\n)}.join}\n), %q(=)*80, %(\n\n)" || :'
50
+
51
+ - echo -e "\e[0Ksection_start:`date +%s`:before_script10[collapsed=true]\r\e[0KDiagnostic ruby & gem information"
51
52
  # Diagnostic ruby & gem information
52
53
  - 'which ruby && ruby --version || :'
53
54
  - "[[ $- == *i* ]] && echo 'Interactive shell session' || echo 'Non-interactive shell session'"
54
55
  - "shopt -q login_shell && echo 'Login shell' || echo 'Not a login shell'"
55
56
  - 'rvm ls || :'
57
+ - echo -e "\e[0Ksection_end:`date +%s`:before_script10\r\e[0K"
56
58
 
57
59
  # If RVM is available, make SURE it's using the right Ruby:
58
60
  # * Source rvm (to run in non-login shells)
@@ -64,22 +66,40 @@ variables:
64
66
  - "command -v rvm && { LATEST_RVM_RUBY_XY=\"$(rvm ls | grep \"$MATRIX_RUBY_VERSION\" | tail -1 | sed -e 's/^.*\\([0-9]\\+\\.[0-9]\\+\\.[0-9]\\+\\).*$/\\1/g')\"; if [ -z \"$LATEST_RVM_RUBY_XY\" ]; then LATEST_RVM_RUBY_XY=\"${MATRIX_RUBY_VERSION}-head\"; rvm install \"$LATEST_RVM_RUBY\" --no-docs; else echo \"Found RVM Ruby: '${LATEST_RVM_RUBY_XY}'\"; fi; rvm use \"$LATEST_RVM_RUBY_XY\" ; }"
65
67
  - 'ruby --version || :'
66
68
  - 'gem list sync || :'
69
+ - echo -e "\e[0Ksection_end:`date +%s`:before_script20\r\e[0K"
67
70
 
68
71
  # Bundle gems (preferring cached > local > downloaded resources)
69
72
  # * Try to use cached and local resources before downloading dependencies
70
- - 'declare GEM_BUNDLER_VER=(-v "~> ${BUNDLER_VERSION:-1.17.1}")'
73
+ - echo -e "\e[0Ksection_start:`date +%s`:before_script30[collapsed=true]\r\e[0KBundle gems (preferring cached > local > downloaded resources)"
74
+ - 'declare GEM_BUNDLER_VER=(-v "~> ${BUNDLER_VERSION:-2.2.6}")'
71
75
  - 'declare GEM_INSTALL_CMD=(gem install --no-document)'
72
76
  - 'declare BUNDLER_INSTALL_CMD=(bundle install --no-binstubs --jobs $(nproc) "${FLAGS[@]}")'
73
77
  - 'mkdir -p ${GEM_HOME} ${BUNDLER_BIN}'
74
78
  - 'gem list -ie "${GEM_BUNDLER_VER[@]}" --silent bundler || "${GEM_INSTALL_CMD[@]}" --local "${GEM_BUNDLER_VER[@]}" bundler || "${GEM_INSTALL_CMD[@]}" "${GEM_BUNDLER_VER[@]}" bundler'
75
79
  - 'rm -rf pkg/ || :'
76
80
  - 'bundle check || rm -f Gemfile.lock && ("${BUNDLER_INSTALL_CMD[@]}" --local || "${BUNDLER_INSTALL_CMD[@]}" || bundle pristine || "${BUNDLER_INSTALL_CMD[@]}") || { echo "PIPELINE: Bundler could not install everything (see log output above)" && exit 99 ; }'
81
+ - echo -e "\e[0Ksection_end:`date +%s`:before_script30\r\e[0K"
77
82
 
78
83
  # Diagnostic bundler, ruby, and gem checks:
84
+ - echo -e "\e[0Ksection_start:`date +%s`:before_script40[collapsed=true]\r\e[0KDiagnostic bundler, ruby, and gem checks"
79
85
  - 'bundle exec rvm ls || :'
80
86
  - 'bundle exec which ruby || :'
81
87
  - 'bundle show sync || :'
82
88
  - 'bundle exec gem list sync || :'
89
+ - echo -e "\e[0Ksection_end:`date +%s`:before_script40\r\e[0K"
90
+
91
+ # bundler dependencies and caching
92
+ #
93
+ # - Cache bundler gems between pipelines foreach Ruby version
94
+ # - Try to use cached and local resources before downloading dependencies
95
+ # --------------------------------------
96
+ .setup_bundler_env: &setup_bundler_env
97
+ cache:
98
+ key: "${CI_PROJECT_NAMESPACE}_ruby-${MATRIX_RUBY_VERSION}_bundler"
99
+ paths:
100
+ - '.vendor'
101
+ before_script:
102
+ !reference [.snippets, before]
83
103
 
84
104
 
85
105
  # Assign a matrix level when your test will run. Heavier jobs get higher numbers
@@ -219,7 +239,7 @@ variables:
219
239
  .pup_6_pe: &pup_6_pe
220
240
  image: 'ruby:2.5'
221
241
  variables:
222
- PUPPET_VERSION: '6.18.0'
242
+ PUPPET_VERSION: '6.22.1'
223
243
  BEAKER_PUPPET_COLLECTION: 'puppet6'
224
244
  MATRIX_RUBY_VERSION: '2.5'
225
245
 
@@ -250,17 +270,27 @@ variables:
250
270
  script:
251
271
  - 'bundle exec rake spec'
252
272
 
273
+ .beaker: &beaker
274
+ image: ruby:2.7.2 # must be 2.7.2 if running in GCP
275
+ tags:
276
+ - beaker
277
+ before_script:
278
+ - !reference [.snippets, before_beaker_google]
279
+ - !reference [.snippets, before]
280
+
281
+
282
+
253
283
  .acceptance_base: &acceptance_base
254
284
  stage: 'acceptance'
255
- tags: ['beaker']
256
285
  <<: *setup_bundler_env
257
286
  <<: *with_SIMP_ACCEPTANCE_MATRIX_LEVEL_1
287
+ <<: *beaker
258
288
 
259
289
  .compliance_base: &compliance_base
260
290
  stage: 'compliance'
261
- tags: ['beaker']
262
291
  <<: *setup_bundler_env
263
292
  <<: *with_SIMP_ACCEPTANCE_MATRIX_LEVEL_1
293
+ <<: *beaker
264
294
 
265
295
 
266
296
  # Unit Tests
data/.rubocop.yml CHANGED
@@ -13,7 +13,7 @@ AllCops:
13
13
  - Rakefile
14
14
  - Guardfile
15
15
  - Vagrantfile
16
- Lint/ConditionPosition:
16
+ Layout/ConditionPosition:
17
17
  Enabled: True
18
18
 
19
19
  Lint/ElseLayout:
@@ -22,13 +22,13 @@ Lint/ElseLayout:
22
22
  Lint/UnreachableCode:
23
23
  Enabled: True
24
24
 
25
- Lint/UselessComparison:
25
+ Lint/BinaryOperatorWithIdenticalOperands:
26
26
  Enabled: True
27
27
 
28
28
  Lint/EnsureReturn:
29
29
  Enabled: True
30
30
 
31
- Lint/HandleExceptions:
31
+ Lint/SuppressedException:
32
32
  Enabled: True
33
33
 
34
34
  Lint/LiteralAsCondition:
@@ -84,13 +84,13 @@ Lint/AmbiguousRegexpLiteral:
84
84
  Security/Eval:
85
85
  Enabled: True
86
86
 
87
- Lint/BlockAlignment:
87
+ Layout/BlockAlignment:
88
88
  Enabled: True
89
89
 
90
- Lint/DefEndAlignment:
90
+ Layout/DefEndAlignment:
91
91
  Enabled: True
92
92
 
93
- Lint/EndAlignment:
93
+ Layout/EndAlignment:
94
94
  Enabled: True
95
95
 
96
96
  Lint/DeprecatedClassMethods:
@@ -105,7 +105,7 @@ Lint/ParenthesesAsGroupedExpression:
105
105
  Lint/RescueException:
106
106
  Enabled: True
107
107
 
108
- Lint/StringConversionInInterpolation:
108
+ Lint/RedundantStringCoercion:
109
109
  Enabled: True
110
110
 
111
111
  Lint/UnusedBlockArgument:
@@ -132,13 +132,13 @@ Naming/AccessorMethodName:
132
132
  Style/Alias:
133
133
  Enabled: True
134
134
 
135
- Layout/AlignArray:
135
+ Layout/ArrayAlignment:
136
136
  Enabled: True
137
137
 
138
- Layout/AlignHash:
138
+ Layout/HashAlignment:
139
139
  Enabled: True
140
140
 
141
- Layout/AlignParameters:
141
+ Layout/ParameterAlignment:
142
142
  Enabled: True
143
143
 
144
144
  Metrics/BlockNesting:
@@ -150,9 +150,6 @@ Style/AsciiComments:
150
150
  Style/Attr:
151
151
  Enabled: True
152
152
 
153
- Style/BracesAroundHashParameters:
154
- Enabled: True
155
-
156
153
  Style/CaseEquality:
157
154
  Enabled: True
158
155
 
@@ -187,16 +184,16 @@ Style/WhenThen:
187
184
  Style/WordArray:
188
185
  Enabled: True
189
186
 
190
- Style/UnneededPercentQ:
187
+ Style/RedundantPercentQ:
191
188
  Enabled: True
192
189
 
193
- Layout/Tab:
190
+ Layout/IndentationStyle:
194
191
  Enabled: True
195
192
 
196
193
  Layout/SpaceBeforeSemicolon:
197
194
  Enabled: True
198
195
 
199
- Layout/TrailingBlankLines:
196
+ Layout/TrailingEmptyLines:
200
197
  Enabled: True
201
198
 
202
199
  Layout/SpaceInsideBlockBraces:
@@ -281,10 +278,10 @@ Style/EachWithObject:
281
278
  Layout/EmptyLineBetweenDefs:
282
279
  Enabled: True
283
280
 
284
- Layout/IndentArray:
281
+ Layout/FirstArrayElementIndentation:
285
282
  Enabled: True
286
283
 
287
- Layout/IndentHash:
284
+ Layout/FirstHashElementIndentation:
288
285
  Enabled: True
289
286
 
290
287
  Layout/IndentationConsistency:
@@ -306,7 +303,7 @@ Style/EmptyLiteral:
306
303
  Layout/TrailingWhitespace:
307
304
  Enabled: True
308
305
 
309
- Metrics/LineLength:
306
+ Layout/LineLength:
310
307
  Enabled: False
311
308
 
312
309
  Naming/BinaryOperatorParameterName:
@@ -331,7 +328,10 @@ Style/StringLiterals:
331
328
  Style/TrailingCommaInArguments:
332
329
  Enabled: True
333
330
 
334
- Style/TrailingCommaInLiteral:
331
+ Style/TrailingCommaInArrayLiteral:
332
+ Enabled: True
333
+
334
+ Style/TrailingCommaInHashLiteral:
335
335
  Enabled: True
336
336
 
337
337
  Style/GlobalVars:
@@ -497,9 +497,6 @@ Metrics/AbcSize:
497
497
  Metrics/PerceivedComplexity:
498
498
  Enabled: False
499
499
 
500
- Lint/UselessAssignment:
501
- Enabled: True
502
-
503
500
  Layout/ClosingParenthesisIndentation:
504
501
  Enabled: True
505
502
 
@@ -529,7 +526,7 @@ RSpec/NestedGroups:
529
526
  Enabled: False
530
527
 
531
528
  # this is broken on ruby1.9
532
- Layout/IndentHeredoc:
529
+ Layout/HeredocIndentation:
533
530
  Enabled: False
534
531
 
535
532
  # disable Yaml safe_load. This is needed to support ruby2.0.0 development envs
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 1.29.0 / 2022-10-25
2
+ * Fixed:
3
+ * Compress fixtures before copy to Windows nodes
4
+
1
5
  ### 1.28.0 / 2022-08-05
2
6
  * Added:
3
7
  * Support RHEL versions without RHN credentials
@@ -1,5 +1,5 @@
1
1
  module Simp; end
2
2
 
3
3
  module Simp::BeakerHelpers
4
- VERSION = '1.28.0'
4
+ VERSION = '1.29.0'
5
5
  end
@@ -11,6 +11,7 @@ module Simp::BeakerHelpers
11
11
  require 'simp/beaker_helpers/snapshot'
12
12
  require 'simp/beaker_helpers/ssg'
13
13
  require 'simp/beaker_helpers/version'
14
+ require 'find'
14
15
 
15
16
  @run_in_parallel = (ENV['BEAKER_SIMP_parallel'] == 'yes')
16
17
 
@@ -395,14 +396,44 @@ module Simp::BeakerHelpers
395
396
  Dir.chdir(mod_root) do
396
397
  # Have to do things the slow way on Windows
397
398
  if is_windows?(sut)
398
- Dir.glob('*') do |module_dir|
399
- if File.directory?(module_dir)
400
- copy_module_to( sut, {
401
- :source => module_dir,
402
- :module_name => module_dir,
403
- :target_module_path => target_module_path
404
- })
399
+ begin
400
+ zipfile = "#{Simp::BeakerHelpers.tmpname}.zip"
401
+ files = []
402
+
403
+ # 'zip -x' does not reliably exclude paths, so we need to remove them from
404
+ # the list of files to zip
405
+ Dir.glob('*') do |module_root|
406
+ next unless Dir.exist?(module_root)
407
+ Find.find("#{module_root}/") do |path|
408
+ if PUPPET_MODULE_INSTALL_IGNORE.any? { |ignore| path.include?(ignore) }
409
+ Find.prune
410
+ next
411
+ end
412
+
413
+ files << path
414
+ end
405
415
  end
416
+
417
+ command = ['zip', zipfile] + files
418
+ Kernel.system(*command)
419
+
420
+ raise("Error: module zip file '#{zipfile}' could not be created at #{mod_root}") unless File.exist?(zipfile)
421
+ copy_to(sut, zipfile, target_module_path, opts)
422
+
423
+ # Windows 2012 and R2 does not natively include PowerShell 5, in which
424
+ # the Expand-Archive cmdlet was introduced
425
+ if fact_on(sut, 'os.release.major').include?('2012')
426
+ unzip_cmd = [
427
+ "\"[System.Reflection.Assembly]::LoadWithPartialName(\'System.IO.Compression.FileSystem\')",
428
+ "[System.IO.Compression.ZipFile]::OpenRead(\'#{target_module_path}\\#{File.basename(zipfile)}\').Entries.FullName \| %{Remove-Item -Path (\"\"\"#{target_module_path}\\$_\"\"\") -Recurse -Force -Confirm:$false -ErrorAction SilentlyContinue}", # rubocop:disable Layout/LineLength
429
+ "[System.IO.Compression.ZipFile]::ExtractToDirectory(\'#{target_module_path}\\#{File.basename(zipfile)}\', \'#{target_module_path}\')\"",
430
+ ].join(';')
431
+ else
432
+ unzip_cmd = "$ProgressPreference='SilentlyContinue';Expand-Archive -Path #{target_module_path}\\#{File.basename(zipfile)} -DestinationPath #{target_module_path} -Force"
433
+ end
434
+ on(sut, powershell(unzip_cmd))
435
+ ensure
436
+ FileUtils.remove_entry(zipfile, true)
406
437
  end
407
438
  else
408
439
  begin
@@ -1,34 +1,27 @@
1
- <%
2
- if ENV['BEAKER_HYPERVISOR']
3
- hypervisor = ENV['BEAKER_HYPERVISOR']
4
- else
5
- hypervisor = 'vagrant'
6
- end
7
- -%>
1
+ ---
8
2
  HOSTS:
9
3
  el7:
10
4
  roles:
11
- - default
12
- - el7
5
+ - default
6
+ - el7
13
7
  platform: el-7-x86_64
14
8
  box: centos/7
15
- hypervisor: <%= hypervisor %>
16
-
9
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
10
+ family: centos-cloud/centos-7
11
+ gce_machine_type: n1-standard-2
17
12
  el8:
18
13
  roles:
19
- - el8
14
+ - el8
20
15
  platform: el-8-x86_64
21
16
  box: centos/stream8
22
- hypervisor: <%= hypervisor %>
23
-
17
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
18
+ family: centos-cloud/centos-stream-8
19
+ gce_machine_type: n1-standard-2
24
20
  CONFIG:
25
- multi_node: <%= ['yes','true'].include?(ENV['BEAKER_multi_node']) ? true : false %>
21
+ multi_node: false
26
22
  log_level: verbose
27
23
  type: aio
28
24
  vagrant_cpus: 2
29
- <% if ENV['BEAKER_PUPPET_COLLECTION'] -%>
30
- puppet_collection: <%= ENV['BEAKER_PUPPET_COLLECTION'] %>
31
- <% end -%>
32
25
  ssh:
33
26
  keepalive: true
34
27
  keepalive_interval: 10
@@ -40,3 +33,4 @@ CONFIG:
40
33
  - <%= Net::SSH::Transport::Algorithms::ALGORITHMS[:encryption].join("\n#{' '*6}- ") %>
41
34
  hmac:
42
35
  - <%= Net::SSH::Transport::Algorithms::ALGORITHMS[:hmac].join("\n#{' '*6}- ") %>
36
+ puppet_collection: "<%= ENV.fetch('BEAKER_PUPPET_COLLECTION', 'puppet7') %>"
@@ -6,15 +6,15 @@ HOSTS:
6
6
  platform: el-7-x86_64
7
7
  hypervisor: docker
8
8
  image: simpproject/simp_beaker_el7
9
- docker_cmd: '["/sbin/init"]'
10
-
9
+ docker_cmd: '/usr/sbin/sshd -D -E /var/log/sshd.log'
10
+
11
11
  el8.test.net:
12
12
  roles:
13
13
  - el8
14
14
  platform: el-8-x86_64
15
15
  hypervisor: docker
16
16
  image: simpproject/simp_beaker_el8
17
- docker_cmd: '["/sbin/init"]'
17
+ docker_cmd: '/usr/sbin/sshd -D -E /var/log/sshd.log'
18
18
 
19
19
  CONFIG:
20
20
  log_level: verbose
@@ -1,21 +1,14 @@
1
- <%
2
- if ENV['BEAKER_HYPERVISOR']
3
- hypervisor = ENV['BEAKER_HYPERVISOR']
4
- else
5
- hypervisor = 'vagrant'
6
- end
7
- -%>
1
+ ---
8
2
  HOSTS:
9
3
  focal:
10
4
  roles:
11
- - default
5
+ - default
12
6
  platform: ubuntu-20.04-x86_64
13
7
  box: ubuntu/focal64
14
- hypervisor: <%= hypervisor %>
15
-
8
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
9
+ family: ubuntu-os-cloud/ubuntu-2004-lts
10
+ gce_machine_type: n1-standard-2
16
11
  CONFIG:
17
12
  log_level: verbose
18
13
  type: aio
19
- <% if ENV['BEAKER_PUPPET_COLLECTION'] -%>
20
- puppet_collection: <%= ENV['BEAKER_PUPPET_COLLECTION'] %>
21
- <% end -%>
14
+ puppet_collection: "<%= ENV.fetch('BEAKER_PUPPET_COLLECTION', 'puppet7') %>"
@@ -1,34 +1,26 @@
1
- <%
2
- if ENV['BEAKER_HYPERVISOR']
3
- hypervisor = ENV['BEAKER_HYPERVISOR']
4
- else
5
- hypervisor = 'vagrant'
6
- end
7
- -%>
1
+ ---
8
2
  HOSTS:
9
3
  win:
10
4
  roles:
11
- - windows
5
+ - windows
12
6
  platform: windows-server-amd64
13
- box: devopsgroup-io/windows_server-2012r2-standard-amd64-nocm
14
- hypervisor: <%= hypervisor %>
7
+ box: gusztavvargadr/windows-server
8
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
15
9
  vagrant_memsize: 2048
16
10
  vagrant_cpus: 2
17
11
  user: vagrant
18
12
  is_cygwin: false
19
- ssh:
20
- host_key: ssh-dss
21
-
13
+ family: windows-cloud/windows-2022
14
+ gce_machine_type: n1-standard-2
22
15
  el7:
23
16
  roles:
24
- - default
17
+ - default
25
18
  platform: el-7-x86_64
26
19
  box: centos/7
27
- hypervisor: <%= hypervisor %>
28
-
20
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
21
+ family: centos-cloud/centos-7
22
+ gce_machine_type: n1-standard-2
29
23
  CONFIG:
30
24
  log_level: verbose
31
25
  type: aio
32
- <% if ENV['BEAKER_PUPPET_ENVIRONMENT'] -%>
33
- puppet_environment: <%= ENV['BEAKER_PUPPET_ENVIRONMENT'] %>
34
- <% end -%>
26
+ puppet_collection: "<%= ENV.fetch('BEAKER_PUPPET_COLLECTION', 'puppet7') %>"
@@ -0,0 +1,28 @@
1
+ ---
2
+ HOSTS:
3
+ win:
4
+ roles:
5
+ - windows
6
+ platform: windows-server-amd64
7
+ box: devopsgroup-io/windows_server-2012r2-standard-amd64-nocm
8
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
9
+ vagrant_memsize: 2048
10
+ vagrant_cpus: 2
11
+ user: vagrant
12
+ is_cygwin: false
13
+ ssh:
14
+ host_key: ssh-dss
15
+ family: windows-cloud/windows-2012-r2
16
+ gce_machine_type: n1-standard-2
17
+ el7:
18
+ roles:
19
+ - default
20
+ platform: el-7-x86_64
21
+ box: centos/7
22
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
23
+ family: centos-cloud/centos-7
24
+ gce_machine_type: n1-standard-2
25
+ CONFIG:
26
+ log_level: verbose
27
+ type: aio
28
+ puppet_collection: "<%= ENV.fetch('BEAKER_PUPPET_COLLECTION', 'puppet7') %>"
@@ -1,34 +1,27 @@
1
- <%
2
- if ENV['BEAKER_HYPERVISOR']
3
- hypervisor = ENV['BEAKER_HYPERVISOR']
4
- else
5
- hypervisor = 'vagrant'
6
- end
7
- -%>
1
+ ---
8
2
  HOSTS:
9
3
  win:
10
4
  roles:
11
- - windows
5
+ - windows
12
6
  platform: windows-server-amd64
13
- box: gusztavvargadr/windows-server
14
- box_version: 1607.0.1909
15
- hypervisor: <%= hypervisor %>
7
+ box: peru/windows-server-2016-standard-x64-eval
8
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
16
9
  vagrant_memsize: 2048
17
10
  vagrant_cpus: 2
18
11
  user: vagrant
19
12
  communicator: winrm
20
13
  is_cygwin: false
21
-
14
+ family: windows-cloud/windows-2016
15
+ gce_machine_type: n1-standard-2
22
16
  el7:
23
17
  roles:
24
- - default
18
+ - default
25
19
  platform: el-7-x86_64
26
20
  box: centos/7
27
- hypervisor: <%= hypervisor %>
28
-
21
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
22
+ family: centos-cloud/centos-7
23
+ gce_machine_type: n1-standard-2
29
24
  CONFIG:
30
25
  log_level: verbose
31
26
  type: aio
32
- <% if ENV['BEAKER_PUPPET_ENVIRONMENT'] -%>
33
- puppet_environment: <%= ENV['BEAKER_PUPPET_ENVIRONMENT'] %>
34
- <% end -%>
27
+ puppet_collection: "<%= ENV.fetch('BEAKER_PUPPET_COLLECTION', 'puppet7') %>"
@@ -1,33 +1,27 @@
1
- <%
2
- if ENV['BEAKER_HYPERVISOR']
3
- hypervisor = ENV['BEAKER_HYPERVISOR']
4
- else
5
- hypervisor = 'vagrant'
6
- end
7
- -%>
1
+ ---
8
2
  HOSTS:
9
3
  win:
10
4
  roles:
11
- - windows
5
+ - windows
12
6
  platform: windows-server-amd64
13
7
  box: gusztavvargadr/windows-server
14
- hypervisor: <%= hypervisor %>
8
+ box_version: "~> 1809"
9
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
15
10
  vagrant_memsize: 2048
16
11
  vagrant_cpus: 2
17
12
  user: vagrant
18
- communicator: winrm
19
13
  is_cygwin: false
20
-
14
+ family: windows-cloud/windows-2019
15
+ gce_machine_type: n1-standard-2
21
16
  el7:
22
17
  roles:
23
- - default
18
+ - default
24
19
  platform: el-7-x86_64
25
20
  box: centos/7
26
- hypervisor: <%= hypervisor %>
27
-
21
+ hypervisor: "<%= ENV.fetch('BEAKER_HYPERVISOR', 'vagrant') %>"
22
+ family: centos-cloud/centos-7
23
+ gce_machine_type: n1-standard-2
28
24
  CONFIG:
29
25
  log_level: verbose
30
26
  type: aio
31
- <% if ENV['BEAKER_PUPPET_ENVIRONMENT'] -%>
32
- puppet_environment: <%= ENV['BEAKER_PUPPET_ENVIRONMENT'] %>
33
- <% end -%>
27
+ puppet_collection: "<%= ENV.fetch('BEAKER_PUPPET_COLLECTION', 'puppet7') %>"
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.28.0
4
+ version: 1.29.0
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: 2022-08-05 00:00:00.000000000 Z
12
+ date: 2023-04-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: beaker
@@ -224,6 +224,7 @@ files:
224
224
  - spec/acceptance/suites/windows/00_default_spec.rb
225
225
  - spec/acceptance/suites/windows/metadata.yml
226
226
  - spec/acceptance/suites/windows/nodesets/default.yml
227
+ - spec/acceptance/suites/windows/nodesets/win2012.yml
227
228
  - spec/acceptance/suites/windows/nodesets/win2016.yml
228
229
  - spec/acceptance/suites/windows/nodesets/win2019.yml
229
230
  - spec/fixtures/inspec_profiles/CentOS-7-disa_stig