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 +4 -4
- data/.github/workflows/pr_glci.yml +5 -5
- data/.github/workflows/pr_glci_cleanup.yml +2 -2
- data/.github/workflows/pr_glci_manual.yml +7 -7
- data/.github/workflows/pr_tests.yml +3 -6
- data/.github/workflows/tag_deploy_rubygem.yml +3 -3
- data/.gitlab-ci.yml +45 -15
- data/.rubocop.yml +21 -24
- data/CHANGELOG.md +4 -0
- data/lib/simp/beaker_helpers/version.rb +1 -1
- data/lib/simp/beaker_helpers.rb +38 -7
- data/spec/acceptance/nodesets/default.yml +12 -18
- data/spec/acceptance/nodesets/docker.yml +3 -3
- data/spec/acceptance/nodesets/ubuntu.yml +6 -13
- data/spec/acceptance/suites/windows/nodesets/default.yml +11 -19
- data/spec/acceptance/suites/windows/nodesets/win2012.yml +28 -0
- data/spec/acceptance/suites/windows/nodesets/win2016.yml +11 -18
- data/spec/acceptance/suites/windows/nodesets/win2019.yml +11 -17
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 25fe1e94533f021b08b45d117546d0117a068a85e2087848917554341db0bff8
|
|
4
|
+
data.tar.gz: 907168ef1038666cffeee8101f66471a6eda6b6a69e925c2731fa17b2cb2ef2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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@
|
|
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-
|
|
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@
|
|
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-
|
|
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@
|
|
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-
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
44
|
steps:
|
|
45
|
-
- uses: actions/checkout@
|
|
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-
|
|
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@
|
|
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@
|
|
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-
|
|
109
|
+
runs-on: ubuntu-latest
|
|
110
110
|
steps:
|
|
111
|
-
- uses: actions/checkout@
|
|
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-
|
|
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: '~>
|
|
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.
|
|
62
|
-
puppet_version: '~> 6.
|
|
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@
|
|
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@
|
|
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@
|
|
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: '
|
|
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
|
-
|
|
42
|
-
#
|
|
43
|
-
.
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
-
|
|
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.
|
|
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
|
-
|
|
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/
|
|
25
|
+
Lint/BinaryOperatorWithIdenticalOperands:
|
|
26
26
|
Enabled: True
|
|
27
27
|
|
|
28
28
|
Lint/EnsureReturn:
|
|
29
29
|
Enabled: True
|
|
30
30
|
|
|
31
|
-
Lint/
|
|
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
|
-
|
|
87
|
+
Layout/BlockAlignment:
|
|
88
88
|
Enabled: True
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
Layout/DefEndAlignment:
|
|
91
91
|
Enabled: True
|
|
92
92
|
|
|
93
|
-
|
|
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/
|
|
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/
|
|
135
|
+
Layout/ArrayAlignment:
|
|
136
136
|
Enabled: True
|
|
137
137
|
|
|
138
|
-
Layout/
|
|
138
|
+
Layout/HashAlignment:
|
|
139
139
|
Enabled: True
|
|
140
140
|
|
|
141
|
-
Layout/
|
|
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/
|
|
187
|
+
Style/RedundantPercentQ:
|
|
191
188
|
Enabled: True
|
|
192
189
|
|
|
193
|
-
Layout/
|
|
190
|
+
Layout/IndentationStyle:
|
|
194
191
|
Enabled: True
|
|
195
192
|
|
|
196
193
|
Layout/SpaceBeforeSemicolon:
|
|
197
194
|
Enabled: True
|
|
198
195
|
|
|
199
|
-
Layout/
|
|
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/
|
|
281
|
+
Layout/FirstArrayElementIndentation:
|
|
285
282
|
Enabled: True
|
|
286
283
|
|
|
287
|
-
Layout/
|
|
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
|
-
|
|
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/
|
|
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/
|
|
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
data/lib/simp/beaker_helpers.rb
CHANGED
|
@@ -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
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
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
|
-
|
|
12
|
-
|
|
5
|
+
- default
|
|
6
|
+
- el7
|
|
13
7
|
platform: el-7-x86_64
|
|
14
8
|
box: centos/7
|
|
15
|
-
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
|
-
|
|
14
|
+
- el8
|
|
20
15
|
platform: el-8-x86_64
|
|
21
16
|
box: centos/stream8
|
|
22
|
-
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:
|
|
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: '
|
|
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: '
|
|
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
|
-
|
|
5
|
+
- default
|
|
12
6
|
platform: ubuntu-20.04-x86_64
|
|
13
7
|
box: ubuntu/focal64
|
|
14
|
-
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
|
-
|
|
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
|
-
|
|
5
|
+
- windows
|
|
12
6
|
platform: windows-server-amd64
|
|
13
|
-
box:
|
|
14
|
-
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
family: windows-cloud/windows-2022
|
|
14
|
+
gce_machine_type: n1-standard-2
|
|
22
15
|
el7:
|
|
23
16
|
roles:
|
|
24
|
-
|
|
17
|
+
- default
|
|
25
18
|
platform: el-7-x86_64
|
|
26
19
|
box: centos/7
|
|
27
|
-
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
|
-
|
|
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
|
-
|
|
5
|
+
- windows
|
|
12
6
|
platform: windows-server-amd64
|
|
13
|
-
box:
|
|
14
|
-
|
|
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
|
-
|
|
18
|
+
- default
|
|
25
19
|
platform: el-7-x86_64
|
|
26
20
|
box: centos/7
|
|
27
|
-
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
|
-
|
|
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
|
-
|
|
5
|
+
- windows
|
|
12
6
|
platform: windows-server-amd64
|
|
13
7
|
box: gusztavvargadr/windows-server
|
|
14
|
-
|
|
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
|
-
|
|
18
|
+
- default
|
|
24
19
|
platform: el-7-x86_64
|
|
25
20
|
box: centos/7
|
|
26
|
-
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
|
-
|
|
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.
|
|
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:
|
|
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
|