puppet_metadata 3.3.0 → 3.5.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/bin/metadata2gha +10 -0
- data/lib/puppet_metadata/github_actions.rb +53 -5
- data/lib/puppet_metadata/operatingsystem.rb +28 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6592e846ac0678664a4f88091a19002df675cbbf06d51159a0a54e9e68573ae7
|
4
|
+
data.tar.gz: c5975198c75b77e682c8ce263f0b2279f77bbb2df1fb941f5809b909416cf003
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46c96e7c74f6f2967b0d7a9c3f0568564e5edcca10f0b57a4652edea19b33d6adad589971cb6141cbab0864eadd58a450554b540fd318bd22717d80e634f6060
|
7
|
+
data.tar.gz: c7a6da54b846424e3122206c6d6908dd8e4716450c7b79e1529a96df24e376a95c77a04cb73bc40519b5e901da43e08857a061cac0687e83b20da1284ff40565
|
data/bin/metadata2gha
CHANGED
@@ -10,6 +10,7 @@ options = {
|
|
10
10
|
beaker_pidfile_workaround: false,
|
11
11
|
domain: nil,
|
12
12
|
minimum_major_puppet_version: nil,
|
13
|
+
beaker_fact: nil,
|
13
14
|
}
|
14
15
|
|
15
16
|
OptionParser.new do |opts|
|
@@ -30,6 +31,15 @@ OptionParser.new do |opts|
|
|
30
31
|
opts.on('--pidfile-workaround VALUE', 'Generate the systemd PIDFile workaround to work around a docker bug', PidfileWorkaround) { |opt| options[:beaker_pidfile_workaround] = opt }
|
31
32
|
opts.on('-d', '--domain VALUE', 'the domain for the box, only used when --use-fqdn is set to true') { |opt| options[:domain] = opt }
|
32
33
|
opts.on('--minimum-major-puppet-version VERSION', "Don't create actions for Puppet versions less than this major version") { |opt| options[:minimum_major_puppet_version] = opt }
|
34
|
+
opts.on('--beaker-facter FACT:LABEL:VALUES', 'Expand the matrix based on a fact. Separate values using commas') do |opt|
|
35
|
+
if opt != 'false'
|
36
|
+
fact, label, values = opt.split(':', 3)
|
37
|
+
label = fact if !label || label.empty?
|
38
|
+
raise OptionParser::InvalidArgument unless values
|
39
|
+
|
40
|
+
options[:beaker_facter] = [fact, label, values.split(',')]
|
41
|
+
end
|
42
|
+
end
|
33
43
|
end.parse!
|
34
44
|
|
35
45
|
filename = ARGV[0]
|
@@ -14,6 +14,8 @@ module PuppetMetadata
|
|
14
14
|
{
|
15
15
|
puppet_major_versions: puppet_major_versions,
|
16
16
|
puppet_unit_test_matrix: puppet_unit_test_matrix,
|
17
|
+
puppet_beaker_test_matrix: puppet_beaker_test_matrix,
|
18
|
+
# Deprecated
|
17
19
|
github_action_test_matrix: github_action_test_matrix,
|
18
20
|
}
|
19
21
|
end
|
@@ -61,8 +63,10 @@ module PuppetMetadata
|
|
61
63
|
else
|
62
64
|
releases&.each do |release|
|
63
65
|
majors.each do |puppet_version|
|
64
|
-
if AIO.has_aio_build?(os, release, puppet_version[:value])
|
66
|
+
if AIO.has_aio_build?(os, release, puppet_version[:value])
|
65
67
|
yield [os, release, puppet_version]
|
68
|
+
elsif PuppetMetadata::OperatingSystem.os_release_puppet_version(os, release) == puppet_version[:value]
|
69
|
+
yield [os, release, distro_puppet_version.merge(value: puppet_version[:value])]
|
66
70
|
end
|
67
71
|
end
|
68
72
|
end
|
@@ -70,16 +74,49 @@ module PuppetMetadata
|
|
70
74
|
end
|
71
75
|
end
|
72
76
|
|
73
|
-
def
|
77
|
+
def puppet_beaker_test_matrix
|
74
78
|
matrix_include = []
|
75
79
|
|
76
80
|
beaker_os_releases do |os, release, puppet_version|
|
77
|
-
|
78
|
-
|
79
|
-
)
|
81
|
+
next if puppet_version_below_minimum?(puppet_version[:value])
|
82
|
+
|
83
|
+
setfile = os_release_to_beaker_setfile(os, release, puppet_version[:collection])
|
80
84
|
next unless setfile
|
85
|
+
|
86
|
+
name = "#{puppet_version[:name]} - #{setfile[1]}"
|
87
|
+
env = {
|
88
|
+
'BEAKER_PUPPET_COLLECTION' => puppet_version[:collection],
|
89
|
+
'BEAKER_SETFILE' => setfile[0],
|
90
|
+
}
|
91
|
+
|
92
|
+
if options[:beaker_facter]
|
93
|
+
fact, label, values = options[:beaker_facter]
|
94
|
+
values.each do |value|
|
95
|
+
matrix_include << {
|
96
|
+
name: "#{name} - #{label || fact} #{value}",
|
97
|
+
env: env.merge("BEAKER_FACTER_#{fact}" => value),
|
98
|
+
}
|
99
|
+
end
|
100
|
+
else
|
101
|
+
matrix_include << {
|
102
|
+
name: name,
|
103
|
+
env: env,
|
104
|
+
}
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
matrix_include
|
109
|
+
end
|
110
|
+
|
111
|
+
def github_action_test_matrix
|
112
|
+
matrix_include = []
|
113
|
+
|
114
|
+
beaker_os_releases do |os, release, puppet_version|
|
81
115
|
next if puppet_version_below_minimum?(puppet_version[:value])
|
82
116
|
|
117
|
+
setfile = os_release_to_beaker_setfile(os, release, puppet_version[:collection])
|
118
|
+
next unless setfile
|
119
|
+
|
83
120
|
matrix_include << {
|
84
121
|
name: "#{puppet_version[:name]} - #{setfile[1]}",
|
85
122
|
setfile: {
|
@@ -98,5 +135,16 @@ module PuppetMetadata
|
|
98
135
|
|
99
136
|
Gem::Version.new(version) < Gem::Version.new(options[:minimum_major_puppet_version])
|
100
137
|
end
|
138
|
+
|
139
|
+
def os_release_to_beaker_setfile(os, release, puppet_collection)
|
140
|
+
PuppetMetadata::Beaker.os_release_to_setfile(
|
141
|
+
os,
|
142
|
+
release,
|
143
|
+
use_fqdn: options[:beaker_use_fqdn],
|
144
|
+
pidfile_workaround: options[:beaker_pidfile_workaround],
|
145
|
+
domain: options[:domain],
|
146
|
+
puppet_version: puppet_collection,
|
147
|
+
)
|
148
|
+
end
|
101
149
|
end
|
102
150
|
end
|
@@ -32,6 +32,7 @@ module PuppetMetadata
|
|
32
32
|
# https://wiki.debian.org/DebianReleases
|
33
33
|
'Debian' => {
|
34
34
|
# TODO: EOL is standard support, not the extended life cycle
|
35
|
+
'12' => nil, # '~2026',
|
35
36
|
'11' => nil, # '~2024',
|
36
37
|
'10' => nil, # '~2022',
|
37
38
|
'9' => '2020-07-06',
|
@@ -206,6 +207,33 @@ module PuppetMetadata
|
|
206
207
|
releases.select { |_release, eol_date| !eol_date || Date.parse(eol_date) > today }.keys
|
207
208
|
.sort_by { |release| Gem::Version.new(release) }
|
208
209
|
end
|
210
|
+
|
211
|
+
# Return the Puppet major version in an OS release, if any
|
212
|
+
#
|
213
|
+
# Only tracks releases without an AIO build, since that's preferred.
|
214
|
+
#
|
215
|
+
# @param [String] operatingsystem
|
216
|
+
# The operating system name
|
217
|
+
# @param [String] release
|
218
|
+
# The operating system release version
|
219
|
+
#
|
220
|
+
# @return [Optional[Integer]] The Puppet major version, if any
|
221
|
+
def os_release_puppet_version(operatingsystem, release)
|
222
|
+
case operatingsystem
|
223
|
+
when 'Debian'
|
224
|
+
case release
|
225
|
+
when '12'
|
226
|
+
7
|
227
|
+
end
|
228
|
+
when 'Fedora'
|
229
|
+
case release
|
230
|
+
when '39', '40'
|
231
|
+
8
|
232
|
+
when '37', '38'
|
233
|
+
7
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
209
237
|
end
|
210
238
|
end
|
211
239
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_metadata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-10-
|
12
|
+
date: 2023-10-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: metadata-json-lint
|