puppet_metadata 3.2.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
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