puppet_metadata 3.2.0 → 3.4.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: 4eeb2df8e93dc5c1eff89ca619a29ca8862bd8c98b3b3862273d05c053a2019c
4
- data.tar.gz: 9cdb5e2c21fc08c2cba8a9c42ddcec33e0fe326e6b478380e79007c34aeaf1f2
3
+ metadata.gz: 556224029dca3954a88bc2965c547e73976f2dfcff434ec8c4404b116c73ac8b
4
+ data.tar.gz: 6f6101c35a3d4bad3a4f575dac4de02788dd454bec93a2a7a6d3328d8f576402
5
5
  SHA512:
6
- metadata.gz: 8a637579127e64447e244511f5ba2d459c00fa4587d9e321a32c427ca0e71901088bb67c56d725067b6a3bafaaaa3df898a474803685a05eb6efe6024da612c0
7
- data.tar.gz: cd7fa183863692be6a0efbbcb46473ace449f11b832490c173d397084c28666b5d83c7ac26e0a56d5d1619b744395e56e1ce08970ae8781b939c32426d9573f6
6
+ metadata.gz: c54f5c54e35607a332ed08006c387511b089066f2b9f330a1feb89ee691cb1b4aa062f7246eb5f025a3125a7ce36122ac8fbe7f1c394e757bb2d736957dda558
7
+ data.tar.gz: 9b114a9fb73bfe479a0ea425565c3b2bf98228a756a281caadb6ea262fffd1e746dfe706cac85cd6f06e4191812aa4e98e1b975209113495cb8fff146d7d47b6
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
@@ -70,17 +72,51 @@ module PuppetMetadata
70
72
  end
71
73
  end
72
74
 
73
- def github_action_test_matrix
75
+ def puppet_beaker_test_matrix
74
76
  matrix_include = []
75
77
 
76
78
  beaker_os_releases do |os, release, puppet_version|
77
- setfile = PuppetMetadata::Beaker.os_release_to_setfile(
78
- os, release, use_fqdn: options[:beaker_use_fqdn], pidfile_workaround: options[:beaker_pidfile_workaround], domain: options[:domain], puppet_version: puppet_version[:collection]
79
- )
79
+ next if puppet_version_below_minimum?(puppet_version[:value])
80
+
81
+ setfile = os_release_to_beaker_setfile(os, release, puppet_version[:collection])
80
82
  next unless setfile
83
+
84
+ name = "#{puppet_version[:name]} - #{setfile[1]}"
85
+ env = {
86
+ 'BEAKER_PUPPET_COLLECTION' => puppet_version[:collection],
87
+ 'BEAKER_SETFILE' => setfile[0],
88
+ }
89
+
90
+ if options[:beaker_facter]
91
+ fact, label, values = options[:beaker_facter]
92
+ values.each do |value|
93
+ matrix_include << {
94
+ name: "#{name} - #{label || fact} #{value}",
95
+ env: env.merge("BEAKER_FACTER_#{fact}" => value),
96
+ }
97
+ end
98
+ else
99
+ matrix_include << {
100
+ name: name,
101
+ env: env,
102
+ }
103
+ end
104
+ end
105
+
106
+ matrix_include
107
+ end
108
+
109
+ def github_action_test_matrix
110
+ matrix_include = []
111
+
112
+ beaker_os_releases do |os, release, puppet_version|
81
113
  next if puppet_version_below_minimum?(puppet_version[:value])
82
114
 
115
+ setfile = os_release_to_beaker_setfile(os, release, puppet_version[:collection])
116
+ next unless setfile
117
+
83
118
  matrix_include << {
119
+ name: "#{puppet_version[:name]} - #{setfile[1]}",
84
120
  setfile: {
85
121
  name: setfile[1],
86
122
  value: setfile[0],
@@ -97,5 +133,16 @@ module PuppetMetadata
97
133
 
98
134
  Gem::Version.new(version) < Gem::Version.new(options[:minimum_major_puppet_version])
99
135
  end
136
+
137
+ def os_release_to_beaker_setfile(os, release, puppet_collection)
138
+ PuppetMetadata::Beaker.os_release_to_setfile(
139
+ os,
140
+ release,
141
+ use_fqdn: options[:beaker_use_fqdn],
142
+ pidfile_workaround: options[:beaker_pidfile_workaround],
143
+ domain: options[:domain],
144
+ puppet_version: puppet_collection,
145
+ )
146
+ end
100
147
  end
101
148
  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.2.0
4
+ version: 3.4.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-08-11 00:00:00.000000000 Z
12
+ date: 2023-10-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: metadata-json-lint
@@ -20,7 +20,7 @@ dependencies:
20
20
  version: '2.0'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '4'
23
+ version: '5'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +30,7 @@ dependencies:
30
30
  version: '2.0'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '4'
33
+ version: '5'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: semantic_puppet
36
36
  requirement: !ruby/object:Gem::Requirement