simp-beaker-helpers 1.28.0 → 1.30.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/add_new_issue_to_triage_project.yml +21 -0
- data/.github/workflows/pr_acceptance.yml +34 -15
- 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 +15 -24
- data/.github/workflows/tag_deploy_rubygem.yml +25 -24
- data/.gitlab-ci.yml +45 -15
- data/.rubocop.yml +21 -24
- data/CHANGELOG.md +22 -1
- data/lib/simp/beaker_helpers/constants.rb +1 -1
- data/lib/simp/beaker_helpers/version.rb +1 -1
- data/lib/simp/beaker_helpers.rb +60 -10
- data/simp-beaker-helpers.gemspec +2 -2
- data/spec/acceptance/nodesets/default.yml +12 -18
- data/spec/acceptance/nodesets/docker.yml +2 -2
- data/spec/acceptance/nodesets/ubuntu.yml +6 -13
- data/spec/acceptance/suites/default/check_puppet_version_spec.rb +13 -13
- data/spec/acceptance/suites/default/fixture_modules_spec.rb +2 -2
- data/spec/acceptance/suites/default/nodesets +1 -1
- data/spec/acceptance/suites/fips_from_fixtures/nodesets +1 -1
- data/spec/acceptance/suites/inspec/nodesets +1 -1
- data/spec/acceptance/suites/snapshot/nodesets +1 -1
- data/spec/acceptance/suites/ssg/nodesets +1 -1
- 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
- data/spec/lib/simp/beaker_helpers_spec.rb +0 -2
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43a26304e3c73ccdceb260efe742031b4586f21f4bd2bf5dd1bf4b27bb0b8336
|
4
|
+
data.tar.gz: 8d3d7ed70d8a0ffd9da29e1b588c2af5c21ab4dca4660e6e2cdafc17db8883d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 672d98b8d677b728cc19859daabd67e7914497d3dec98e0708ac6ca5efa6395efbf3156e194093e7043af1153bcc2431c49e11a754e45e3f21412b5e483b2126
|
7
|
+
data.tar.gz: 9af14a14f18493d44c1af69ce2cbf02f1458349268e856073fa5e95178387ece6bfc736ec60d3e83343a7586a436ca03cc27a05d6f87595fc2f46144445cbfc9
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
name: Add new issues to triage project
|
3
|
+
|
4
|
+
on:
|
5
|
+
issues:
|
6
|
+
types:
|
7
|
+
- opened
|
8
|
+
- reopened
|
9
|
+
pull_request_target:
|
10
|
+
types:
|
11
|
+
- opened
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
add-to-project:
|
15
|
+
name: Add issue to project
|
16
|
+
runs-on: ubuntu-latest
|
17
|
+
steps:
|
18
|
+
- uses: actions/add-to-project@v0.5.0
|
19
|
+
with:
|
20
|
+
project-url: https://github.com/orgs/simp/projects/11
|
21
|
+
github-token: ${{ secrets.AUTO_TRIAGE_TOKEN }}
|
@@ -10,20 +10,46 @@ on:
|
|
10
10
|
|
11
11
|
jobs:
|
12
12
|
acceptance:
|
13
|
+
name: '${{matrix.beaker.suite}}, Puppet ${{matrix.puppet.puppet_version}}'
|
13
14
|
runs-on:
|
14
15
|
- ubuntu-latest
|
15
16
|
strategy:
|
16
17
|
matrix:
|
17
|
-
|
18
|
-
-
|
18
|
+
puppet:
|
19
|
+
- label: 'Puppet 7.x [SIMP 6.6/PE 2021.7]'
|
20
|
+
puppet_version: '~> 7.0'
|
21
|
+
ruby_version: '2.7'
|
22
|
+
experimental: false
|
23
|
+
- label: 'Puppet 8.x'
|
24
|
+
puppet_version: '~> 8.0'
|
25
|
+
ruby_version: 3.1
|
26
|
+
experimental: true
|
27
|
+
beaker:
|
28
|
+
- label: beaker
|
29
|
+
suite: default
|
30
|
+
allowed_to_fail: false
|
31
|
+
- label: beaker puppet_collections
|
32
|
+
suite: puppet_collections
|
33
|
+
allowed_to_fail: false
|
34
|
+
- label: beaker ssg
|
35
|
+
suite: ssg
|
36
|
+
allowed_to_fail: false
|
37
|
+
# The inspec suite fails for unclear reasons during an scp.
|
38
|
+
# Sicura tests compliance at the framework level, so troubleshooting
|
39
|
+
# inspec acceptance tests is not a priority at present.
|
40
|
+
- label: beaker inspec
|
41
|
+
suite: inspec
|
42
|
+
allowed_to_fail: true
|
19
43
|
fail-fast: false
|
44
|
+
env:
|
45
|
+
PUPPET_VERSION: ${{matrix.puppet.puppet_version}}
|
20
46
|
steps:
|
21
47
|
- name: checkout repo
|
22
48
|
uses: actions/checkout@v2
|
23
49
|
- name: setup ruby
|
24
50
|
uses: ruby/setup-ruby@v1
|
25
51
|
with:
|
26
|
-
ruby-version: ${{ matrix.
|
52
|
+
ruby-version: ${{ matrix.puppet.ruby_version }}
|
27
53
|
- name: ensure entropy
|
28
54
|
run: |
|
29
55
|
sudo apt-get update -y
|
@@ -41,15 +67,8 @@ jobs:
|
|
41
67
|
run: |
|
42
68
|
gem install bundler
|
43
69
|
bundle update
|
44
|
-
- name: beaker
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
run:
|
49
|
-
bundle exec rake beaker:suites[puppet_collections,docker]
|
50
|
-
- name: beaker ssg
|
51
|
-
run: |
|
52
|
-
bundle exec rake beaker:suites[ssg,docker]
|
53
|
-
- name: beaker inspec
|
54
|
-
run: |
|
55
|
-
bundle exec rake beaker:suites[inspec,docker]
|
70
|
+
- name: 'run beaker:suite "${{matrix.beaker.label}}"'
|
71
|
+
continue-on-error: ${{matrix.puppet.experimental || matrix.beaker.allowed_to_fail}}
|
72
|
+
env:
|
73
|
+
BEAKER_SUITE: ${{matrix.beaker.suite}}
|
74
|
+
run: bundle exec rake beaker:suites[$BEAKER_SUITE,docker]
|
@@ -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:
|
@@ -1,19 +1,10 @@
|
|
1
1
|
# Run Puppet checks and test matrix on Pull Requests
|
2
2
|
# ------------------------------------------------------------------------------
|
3
|
-
# NOTICE: **This file is maintained with puppetsync**
|
4
|
-
#
|
5
|
-
# This file is updated automatically as part of a puppet module baseline.
|
6
|
-
#
|
7
|
-
# The next baseline sync will overwrite any local changes to this file!
|
8
|
-
#
|
9
|
-
# ==============================================================================
|
10
|
-
#
|
11
3
|
# The testing matrix considers ruby/puppet versions supported by SIMP and PE:
|
12
4
|
# ------------------------------------------------------------------------------
|
13
5
|
# Release Puppet Ruby EOL
|
14
|
-
#
|
15
|
-
# PE
|
16
|
-
# PE 2019.8 6.18 2.5 2022-12 (LTS)
|
6
|
+
# PE 2019.8 6.22 2.7 2022-12 (LTS)
|
7
|
+
# PE 2021.Y 7.x 2.7 Quarterly updates
|
17
8
|
#
|
18
9
|
# https://puppet.com/docs/pe/2018.1/component_versions_in_recent_pe_releases.html
|
19
10
|
# https://puppet.com/misc/puppet-enterprise-lifecycle
|
@@ -33,20 +24,20 @@ on:
|
|
33
24
|
types: [opened, reopened, synchronize]
|
34
25
|
|
35
26
|
env:
|
36
|
-
PUPPET_VERSION: '~>
|
27
|
+
PUPPET_VERSION: '~> 7'
|
37
28
|
|
38
29
|
jobs:
|
39
30
|
ruby-style:
|
40
31
|
if: false # TODO Modules will need: rubocop in Gemfile, .rubocop.yml
|
41
32
|
name: 'Ruby Style (experimental)'
|
42
|
-
runs-on: ubuntu-
|
33
|
+
runs-on: ubuntu-latest
|
43
34
|
continue-on-error: true
|
44
35
|
steps:
|
45
36
|
- uses: actions/checkout@v2
|
46
37
|
- name: "Install Ruby ${{matrix.puppet.ruby_version}}"
|
47
38
|
uses: ruby/setup-ruby@v1
|
48
39
|
with:
|
49
|
-
ruby-version: 2.
|
40
|
+
ruby-version: 2.7
|
50
41
|
bundler-cache: true
|
51
42
|
- run: |
|
52
43
|
bundle show
|
@@ -54,21 +45,20 @@ jobs:
|
|
54
45
|
|
55
46
|
spec-tests:
|
56
47
|
name: 'Spec'
|
57
|
-
runs-on: ubuntu-
|
48
|
+
runs-on: ubuntu-latest
|
58
49
|
strategy:
|
59
50
|
matrix:
|
60
51
|
puppet:
|
61
|
-
- label: 'Puppet
|
62
|
-
puppet_version: '~> 6.18.0'
|
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
|
-
- label: 'Puppet 7.x'
|
52
|
+
- label: 'Puppet 7.x [SIMP 6.6/PE 2021.7]'
|
68
53
|
puppet_version: '~> 7.0'
|
69
54
|
ruby_version: '2.7'
|
55
|
+
experimental: false
|
56
|
+
- label: 'Puppet 8.x'
|
57
|
+
puppet_version: '~> 8.0'
|
58
|
+
ruby_version: 3.1
|
59
|
+
experimental: true
|
70
60
|
env:
|
71
|
-
PUPPET_VERSION:
|
61
|
+
PUPPET_VERSION: ${{matrix.puppet.puppet_version}}
|
72
62
|
steps:
|
73
63
|
- uses: actions/checkout@v2
|
74
64
|
- name: 'Install Ruby ${{matrix.puppet.ruby_version}}'
|
@@ -78,10 +68,11 @@ jobs:
|
|
78
68
|
bundler-cache: true
|
79
69
|
- run: 'command -v rpm || if command -v apt-get; then sudo apt-get update; sudo apt-get install -y rpm; fi ||:'
|
80
70
|
- run: 'bundle exec rake spec'
|
71
|
+
continue-on-error: ${{matrix.puppet.experimental}}
|
81
72
|
|
82
73
|
# dump_contexts:
|
83
74
|
# name: 'Examine Context contents'
|
84
|
-
# runs-on: ubuntu-
|
75
|
+
# runs-on: ubuntu-latest
|
85
76
|
# steps:
|
86
77
|
# - name: Dump contexts
|
87
78
|
# env:
|
@@ -48,7 +48,7 @@ on:
|
|
48
48
|
- '[0-9]+\.[0-9]+\.[0-9]+\-[a-z]+[0-9]+'
|
49
49
|
|
50
50
|
env:
|
51
|
-
PUPPET_VERSION: '~>
|
51
|
+
PUPPET_VERSION: '~> 7'
|
52
52
|
LOCAL_WORKFLOW_CONFIG_FILE: .github/workflows.local.json
|
53
53
|
|
54
54
|
jobs:
|
@@ -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
|
@@ -87,12 +87,12 @@ jobs:
|
|
87
87
|
grep -w '"gem_release_command"' &> /dev/null; then
|
88
88
|
GEM_RELEASE_COMMAND="$(jq -r .gem_release_command "$LOCAL_WORKFLOW_CONFIG_FILE" )"
|
89
89
|
fi
|
90
|
-
echo "
|
91
|
-
echo "
|
92
|
-
echo "
|
90
|
+
echo "build_command=$GEM_BUILD_COMMAND" | tee -a "$GITHUB_OUTPUT"
|
91
|
+
echo "pkg_dir=$GEM_PKG_DIR" | tee -a "$GITHUB_OUTPUT"
|
92
|
+
echo "release_command=$GEM_RELEASE_COMMAND" | tee -a "$GITHUB_OUTPUT"
|
93
93
|
- uses: ruby/setup-ruby@v1
|
94
94
|
with:
|
95
|
-
ruby-version: 2.
|
95
|
+
ruby-version: 2.7
|
96
96
|
bundler-cache: true
|
97
97
|
- name: Test build the package
|
98
98
|
run: "${{ steps.commands.outputs.build_command }}"
|
@@ -113,9 +113,10 @@ jobs:
|
|
113
113
|
runs-on: ubuntu-latest
|
114
114
|
outputs:
|
115
115
|
prerelease: ${{ steps.tag-check.outputs.prerelease }}
|
116
|
+
tag: ${{ steps.tag-check.outputs.tag }}
|
116
117
|
steps:
|
117
118
|
- name: Checkout code
|
118
|
-
uses: actions/checkout@
|
119
|
+
uses: actions/checkout@v3
|
119
120
|
with:
|
120
121
|
ref: ${{ github.ref }}
|
121
122
|
clean: true
|
@@ -128,7 +129,6 @@ jobs:
|
|
128
129
|
annotation="$(git for-each-ref "$GITHUB_REF" --format='%(contents)' --count=1)"
|
129
130
|
annotation_title="$(echo "$annotation" | head -1)"
|
130
131
|
|
131
|
-
|
132
132
|
if [[ "$tag" =~ ^(simp-|v)?[0-9]+\.[0-9]+\.[0-9]+(-(rc|alpha|beta|pre|post)?([0-9]+)?)?$ ]]; then
|
133
133
|
if [ -n "${BASH_REMATCH[2]}" ]; then
|
134
134
|
prerelease=yes
|
@@ -139,31 +139,32 @@ jobs:
|
|
139
139
|
exit 88
|
140
140
|
fi
|
141
141
|
|
142
|
-
echo "
|
143
|
-
echo "
|
144
|
-
echo "
|
142
|
+
echo "tag=$tag" | tee -a "$GITHUB_OUTPUT"
|
143
|
+
echo "prerelease=$prerelease" | tee -a "$GITHUB_OUTPUT"
|
144
|
+
echo "TARGET_TAG=$tag" | tee -a "$GITHUB_ENV"
|
145
145
|
|
146
146
|
# Prepare annotation body as a file for the next step
|
147
147
|
#
|
148
|
-
# * The GitHub Release
|
149
|
-
# * The file is needed because :set-output only supports single lines
|
148
|
+
# * The GitHub Release renders the text in this file as markdown
|
150
149
|
# * The `perl -pe` removes RPM-style date headers from the CHANGELOG,
|
151
150
|
# because they don't render well as markdown on the Release page
|
152
|
-
|
151
|
+
echo "RELEASE_MESSAGE<<EOF$$" >> "$GITHUB_ENV"
|
152
|
+
printf '%s\n\n' "$annotation_title" >> "$GITHUB_ENV"
|
153
153
|
echo "$annotation" | tail -n +2 | \
|
154
|
-
perl -pe 'BEGIN{undef $/;} s/\n\* (Mon|Tue|Wed|Thu|Fri|Sat|Sun) .*?\n//smg;'
|
154
|
+
perl -pe 'BEGIN{undef $/;} s/\n\* (Mon|Tue|Wed|Thu|Fri|Sat|Sun) .*?\n//smg;' >> "$GITHUB_ENV"
|
155
|
+
echo "EOF$$" >> "$GITHUB_ENV"
|
155
156
|
|
156
157
|
- name: Create Release
|
157
|
-
uses: actions/create-release@v1
|
158
158
|
id: create_release
|
159
159
|
env:
|
160
160
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
161
|
+
IS_PRERELEASE: ${{ steps.tag-check.outputs.prerelease }}
|
162
|
+
run: |
|
163
|
+
echo "${RELEASE_MESSAGE}" > /tmp/.commit-msg.txt
|
164
|
+
args=(--file /tmp/.commit-msg.txt)
|
165
|
+
[[ $IS_PRERELEASE == yes ]] && args+=(--prerelease)
|
166
|
+
|
167
|
+
hub release create ${args[@]} "$TARGET_TAG"
|
167
168
|
|
168
169
|
deploy-rubygem:
|
169
170
|
name: Deploy RubyGem Release
|
@@ -177,13 +178,13 @@ jobs:
|
|
177
178
|
PKG_DIR: ${{ needs.releng-checks.outputs.pkg_dir }}
|
178
179
|
steps:
|
179
180
|
- name: Checkout code
|
180
|
-
uses: actions/checkout@
|
181
|
+
uses: actions/checkout@v3
|
181
182
|
with:
|
182
183
|
ref: ${{ github.ref }}
|
183
184
|
clean: true
|
184
185
|
- uses: ruby/setup-ruby@v1
|
185
186
|
with:
|
186
|
-
ruby-version: 2.
|
187
|
+
ruby-version: 2.7
|
187
188
|
bundler-cache: true
|
188
189
|
- name: Build RubyGem
|
189
190
|
run: |
|
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
|