puppet_litmus 0.36.1 → 0.36.2
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/exe/matrix_from_metadata_v2 +22 -26
- data/lib/puppet_litmus/version.rb +1 -1
- data/spec/exe/matrix_from_metadata_v2_spec.rb +12 -12
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 918f276058fbe47a9bbffbc01d7438cb45506aaa9fad277b7d0a6d6a19fd8f95
|
4
|
+
data.tar.gz: 5e98eb4401f9380d2ae31c87ea530c273faf177236f01b8b73d6b9cdb2c8f344
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a60869765a8bdf0aea21b476daea6d69535daf39ab80de18895952c51b181d7783d103eff0d6300c67819a7073a7a5c67033bba4030a0a9411c758c1c2f62b9a
|
7
|
+
data.tar.gz: 8bc5ee4296050a3343b5312cbdcd774af7f4fb2186df4779b1779b921895edc65ba8f8893760a612517e137246474b827bd78ab0084c83903b219366154db653
|
data/exe/matrix_from_metadata_v2
CHANGED
@@ -32,7 +32,7 @@ IMAGE_TABLE = {
|
|
32
32
|
'SLES-15' => 'sles-15',
|
33
33
|
'Windows-2016' => 'windows-2016',
|
34
34
|
'Windows-2019' => 'windows-2019',
|
35
|
-
'Windows-2022' => 'windows-2022'
|
35
|
+
'Windows-2022' => 'windows-2022'
|
36
36
|
}.freeze
|
37
37
|
|
38
38
|
DOCKER_PLATFORMS = {
|
@@ -53,44 +53,40 @@ DOCKER_PLATFORMS = {
|
|
53
53
|
# 'Ubuntu-16.04' => 'litmusimage/ubuntu:16.04', Support Dropped
|
54
54
|
'Ubuntu-18.04' => 'litmusimage/ubuntu:18.04',
|
55
55
|
'Ubuntu-20.04' => 'litmusimage/ubuntu:20.04',
|
56
|
-
'Ubuntu-22.04' => 'litmusimage/ubuntu:22.04'
|
56
|
+
'Ubuntu-22.04' => 'litmusimage/ubuntu:22.04'
|
57
57
|
}.freeze
|
58
58
|
|
59
59
|
# This table uses the latest version in each collection for accurate
|
60
60
|
# comparison when evaluating puppet requirements from the metadata
|
61
61
|
COLLECTION_TABLE = [
|
62
|
-
{
|
63
|
-
puppet_maj_version: 6,
|
64
|
-
ruby_version: 2.5,
|
65
|
-
},
|
66
62
|
{
|
67
63
|
puppet_maj_version: 7,
|
68
|
-
ruby_version: 2.7
|
64
|
+
ruby_version: 2.7
|
69
65
|
},
|
70
66
|
{
|
71
67
|
puppet_maj_version: 8,
|
72
|
-
ruby_version: 3.2
|
73
|
-
}
|
68
|
+
ruby_version: 3.2
|
69
|
+
}
|
74
70
|
].freeze
|
75
71
|
|
76
72
|
matrix = {
|
77
73
|
platforms: [],
|
78
|
-
collection: []
|
74
|
+
collection: []
|
79
75
|
}
|
80
76
|
|
81
77
|
spec_matrix = {
|
82
|
-
include: []
|
78
|
+
include: []
|
83
79
|
}
|
84
80
|
|
85
81
|
if ARGV.include?('--exclude-platforms')
|
86
|
-
exclude_platforms_occurencies = ARGV.
|
82
|
+
exclude_platforms_occurencies = ARGV.count { |arg| arg == '--exclude-platforms' }
|
87
83
|
raise '--exclude-platforms argument should be present just one time in the command' unless exclude_platforms_occurencies <= 1
|
88
84
|
|
89
85
|
exclude_platforms_list = ARGV[ARGV.find_index('--exclude-platforms') + 1]
|
90
86
|
raise 'you need to provide a list of platforms in JSON format' if exclude_platforms_list.nil?
|
91
87
|
|
92
88
|
begin
|
93
|
-
exclude_list = JSON.parse(exclude_platforms_list).map
|
89
|
+
exclude_list = JSON.parse(exclude_platforms_list).map(&:downcase)
|
94
90
|
rescue JSON::ParserError
|
95
91
|
raise 'the exclude platforms list must valid JSON'
|
96
92
|
end
|
@@ -103,20 +99,20 @@ metadata = JSON.parse(File.read(metadata_path))
|
|
103
99
|
# Set platforms based on declared operating system support
|
104
100
|
metadata['operatingsystem_support'].sort_by { |a| a['operatingsystem'] }.each do |sup|
|
105
101
|
os = sup['operatingsystem']
|
106
|
-
sup['operatingsystemrelease'].sort_by
|
102
|
+
sup['operatingsystemrelease'].sort_by(&:to_i).each do |ver|
|
107
103
|
image_key = "#{os}-#{ver}"
|
108
104
|
|
109
105
|
if IMAGE_TABLE.key?(image_key) && !exclude_list.include?(image_key.downcase)
|
110
106
|
matrix[:platforms] << {
|
111
107
|
label: image_key,
|
112
108
|
provider: 'provision::provision_service',
|
113
|
-
image: IMAGE_TABLE[image_key]
|
109
|
+
image: IMAGE_TABLE[image_key]
|
114
110
|
}
|
115
111
|
elsif DOCKER_PLATFORMS.key?(image_key) && !exclude_list.include?(image_key.downcase)
|
116
112
|
matrix[:platforms] << {
|
117
113
|
label: image_key,
|
118
114
|
provider: 'provision::docker',
|
119
|
-
image: DOCKER_PLATFORMS[image_key]
|
115
|
+
image: DOCKER_PLATFORMS[image_key]
|
120
116
|
}
|
121
117
|
else
|
122
118
|
puts "::warning::#{image_key} was excluded from testing" if exclude_list.include?(image_key.downcase)
|
@@ -130,7 +126,7 @@ if metadata.key?('requirements') && metadata['requirements'].length.positive?
|
|
130
126
|
metadata['requirements'].each do |req|
|
131
127
|
next unless req.key?('name') && req.key?('version_requirement') && req['name'] == 'puppet'
|
132
128
|
|
133
|
-
ver_regexp =
|
129
|
+
ver_regexp = /^([>=<]{1,2})\s*([\d.]+)\s+([>=<]{1,2})\s*([\d.]+)$/
|
134
130
|
match = ver_regexp.match(req['version_requirement'])
|
135
131
|
if match.nil?
|
136
132
|
puts "::warning::Didn't recognize version_requirement '#{req['version_requirement']}'"
|
@@ -146,22 +142,22 @@ if metadata.key?('requirements') && metadata['requirements'].length.positive?
|
|
146
142
|
next unless Gem::Requirement.create(reqs).satisfied_by?(Gem::Version.new("#{collection[:puppet_maj_version]}.9999"))
|
147
143
|
|
148
144
|
matrix[:collection] << "puppet#{collection[:puppet_maj_version]}-nightly"
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
145
|
+
|
146
|
+
include_version = {
|
147
|
+
8 => "~> #{collection[:puppet_maj_version]}.0",
|
148
|
+
7 => "~> #{collection[:puppet_maj_version]}.24",
|
149
|
+
6 => "~> #{collection[:puppet_maj_version]}.0"
|
150
|
+
}
|
151
|
+
spec_matrix[:include] << { puppet_version: include_version[collection[:puppet_maj_version]], ruby_version: collection[:ruby_version] }
|
154
152
|
end
|
155
153
|
end
|
156
154
|
end
|
157
155
|
|
158
156
|
# Set to defaults (all collections) if no matches are found
|
159
|
-
if matrix[:collection].empty?
|
160
|
-
matrix[:collection] = COLLECTION_TABLE.map { |collection| "puppet#{collection[:puppet_maj_version]}-nightly" }
|
161
|
-
end
|
157
|
+
matrix[:collection] = COLLECTION_TABLE.map { |collection| "puppet#{collection[:puppet_maj_version]}-nightly" } if matrix[:collection].empty?
|
162
158
|
|
163
159
|
# Just to make sure there aren't any duplicates
|
164
|
-
matrix[:platforms] = matrix[:platforms].uniq.
|
160
|
+
matrix[:platforms] = matrix[:platforms].uniq.sort_by { |a| a[:label] }
|
165
161
|
matrix[:collection] = matrix[:collection].uniq.sort
|
166
162
|
|
167
163
|
set_output('matrix', JSON.generate(matrix))
|
@@ -8,7 +8,7 @@ RSpec.describe 'matrix_from_metadata_v2' do
|
|
8
8
|
let(:github_output_content) { github_output.read }
|
9
9
|
let(:result) { run_matrix_from_metadata_v2 }
|
10
10
|
|
11
|
-
before
|
11
|
+
before do
|
12
12
|
ENV['GITHUB_OUTPUT'] = github_output.path
|
13
13
|
end
|
14
14
|
|
@@ -29,11 +29,11 @@ RSpec.describe 'matrix_from_metadata_v2' do
|
|
29
29
|
'"collection":[',
|
30
30
|
'"puppet7-nightly","puppet8-nightly"',
|
31
31
|
']',
|
32
|
-
'}'
|
33
|
-
].join
|
32
|
+
'}'
|
33
|
+
].join
|
34
34
|
)
|
35
35
|
expect(github_output_content).to include(
|
36
|
-
'spec_matrix={"include":[{"puppet_version":"~> 7.
|
36
|
+
'spec_matrix={"include":[{"puppet_version":"~> 7.24","ruby_version":2.7},{"puppet_version":"~> 8.0","ruby_version":3.2}]}'
|
37
37
|
)
|
38
38
|
expect(result.stdout).to include("Created matrix with 8 cells:\n - Acceptance Test Cells: 6\n - Spec Test Cells: 2")
|
39
39
|
end
|
@@ -44,7 +44,7 @@ RSpec.describe 'matrix_from_metadata_v2' do
|
|
44
44
|
let(:github_output_content) { github_output.read }
|
45
45
|
let(:result) { run_matrix_from_metadata_v2({ '--exclude-platforms' => ['ubuntu-18.04'] }) }
|
46
46
|
|
47
|
-
before
|
47
|
+
before do
|
48
48
|
ENV['GITHUB_OUTPUT'] = github_output.path
|
49
49
|
end
|
50
50
|
|
@@ -65,11 +65,11 @@ RSpec.describe 'matrix_from_metadata_v2' do
|
|
65
65
|
'"collection":[',
|
66
66
|
'"puppet7-nightly","puppet8-nightly"',
|
67
67
|
']',
|
68
|
-
'}'
|
69
|
-
].join
|
68
|
+
'}'
|
69
|
+
].join
|
70
70
|
)
|
71
71
|
expect(github_output_content).to include(
|
72
|
-
'spec_matrix={"include":[{"puppet_version":"~> 7.
|
72
|
+
'spec_matrix={"include":[{"puppet_version":"~> 7.24","ruby_version":2.7},{"puppet_version":"~> 8.0","ruby_version":3.2}]}'
|
73
73
|
)
|
74
74
|
expect(result.stdout).to include("Created matrix with 6 cells:\n - Acceptance Test Cells: 4\n - Spec Test Cells: 2")
|
75
75
|
end
|
@@ -80,7 +80,7 @@ RSpec.describe 'matrix_from_metadata_v2' do
|
|
80
80
|
let(:github_output_content) { github_output.read }
|
81
81
|
let(:result) { run_matrix_from_metadata_v2({ '--exclude-platforms' => ['ubuntu-18.04', 'redhat-8'] }) }
|
82
82
|
|
83
|
-
before
|
83
|
+
before do
|
84
84
|
ENV['GITHUB_OUTPUT'] = github_output.path
|
85
85
|
end
|
86
86
|
|
@@ -101,11 +101,11 @@ RSpec.describe 'matrix_from_metadata_v2' do
|
|
101
101
|
'"collection":[',
|
102
102
|
'"puppet7-nightly","puppet8-nightly"',
|
103
103
|
']',
|
104
|
-
'}'
|
105
|
-
].join
|
104
|
+
'}'
|
105
|
+
].join
|
106
106
|
)
|
107
107
|
expect(github_output_content).to include(
|
108
|
-
'spec_matrix={"include":[{"puppet_version":"~> 7.
|
108
|
+
'spec_matrix={"include":[{"puppet_version":"~> 7.24","ruby_version":2.7},{"puppet_version":"~> 8.0","ruby_version":3.2}]}'
|
109
109
|
)
|
110
110
|
expect(result.stdout).to include("Created matrix with 4 cells:\n - Acceptance Test Cells: 2\n - Spec Test Cells: 2")
|
111
111
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_litmus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.36.
|
4
|
+
version: 0.36.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bolt
|
@@ -215,17 +215,17 @@ specification_version: 4
|
|
215
215
|
summary: Providing a simple command line tool for puppet content creators, to enable
|
216
216
|
simple and complex test deployments.
|
217
217
|
test_files:
|
218
|
-
- spec/
|
219
|
-
- spec/
|
218
|
+
- spec/spec_helper.rb
|
219
|
+
- spec/support/inventory.rb
|
220
|
+
- spec/support/inventorytesting.yaml
|
221
|
+
- spec/lib/puppet_litmus/rake_tasks_spec.rb
|
222
|
+
- spec/lib/puppet_litmus/puppet_litmus_version_spec.rb
|
220
223
|
- spec/lib/puppet_litmus/util_spec.rb
|
221
224
|
- spec/lib/puppet_litmus/inventory_manipulation_spec.rb
|
222
|
-
- spec/lib/puppet_litmus/rake_tasks_spec.rb
|
223
|
-
- spec/lib/puppet_litmus/puppet_helpers_spec.rb
|
224
225
|
- spec/lib/puppet_litmus/rake_helper_spec.rb
|
225
|
-
- spec/lib/puppet_litmus/
|
226
|
-
- spec/
|
227
|
-
- spec/
|
228
|
-
- spec/support/inventory.rb
|
226
|
+
- spec/lib/puppet_litmus/puppet_helpers_spec.rb
|
227
|
+
- spec/exe/fake_metadata.json
|
228
|
+
- spec/exe/matrix_from_metadata_v2_spec.rb
|
229
229
|
- spec/data/doot.tar.gz
|
230
|
-
- spec/data/inventory.yaml
|
231
230
|
- spec/data/jim.yaml
|
231
|
+
- spec/data/inventory.yaml
|