Skip to content

Commit 1701aa9

Browse files
committed
(maint) specify supported runner in matrix
1 parent ff3de62 commit 1701aa9

File tree

3 files changed

+34
-15
lines changed

3 files changed

+34
-15
lines changed

exe/matrix.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,5 +81,10 @@
8181
"22.04": { "x86_64": "litmusimage/ubuntu:22.04" }
8282
}
8383
}
84+
},
85+
"github_runner": {
86+
"docker": {
87+
"^(AmazonLinux-2|(CentOS|OracleLinux|Scientific)-7|Ubuntu-18|Debian-10)": "ubuntu-20.04"
88+
}
8489
}
8590
}

exe/matrix_from_metadata_v3

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ options = OpenStruct.new(
9595

9696
default_options = {
9797
'provision-prefer': 'docker',
98+
runner: 'ubuntu-latest',
9899
output: 'auto',
99100
matrix: File.join(File.dirname(__FILE__), 'matrix.json'),
100101
metadata: 'metadata.json'
@@ -143,6 +144,8 @@ begin
143144
opt.on('--quiet', TrueClass, 'Disable notice messages') { |o| options.quiet = o }
144145
opt.on('--output TYPE', OutputType, "Type of output to generate; auto, github or stdout (default: #{default_options[:output]})\n\n") { |o| options.output = o }
145146

147+
opt.on('--runner NAME', String, "Default Github action runner (default: #{default_options[:runner]})") { |o| options.runner = o }
148+
146149
opt.on('--puppet-include MAJOR', Integer, 'Select puppet major version') { |o| options.puppet_include << o }
147150
opt.on('--puppet-exclude MAJOR', Integer, 'Filter puppet major version') { |o| options.puppet_exclude << o }
148151

@@ -277,11 +280,16 @@ options[:metadata]['operatingsystem_support'].each do |os_sup|
277280
label = (arch.eql?('x86_64') ? platform_key : platform_key + [arch]).join('-')
278281
next if os_ver_platforms.any? { |h| h[:label] == label }
279282

283+
runner = options[:matrix]['github_runner'][provisioner]&.reduce(options[:runner]) do |memo, (reg, run)|
284+
label.match?(/#{reg}/i) ? run : memo
285+
end
286+
280287
os_ver_platforms << {
281288
label: label,
282289
provider: provisioner,
283290
arch: arch,
284-
image: image
291+
image: image,
292+
runner: runner.nil? ? options[:runner] : runner
285293
}
286294
end
287295
end

spec/exe/matrix_from_metadata_v3_spec.rb

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@
2424
matrix = [
2525
'matrix={',
2626
'"platforms":[',
27-
'{"label":"Ubuntu-18.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:18.04"},',
28-
'{"label":"Ubuntu-22.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:22.04"}',
27+
'{"label":"AmazonLinux-2","provider":"docker","arch":"x86_64","image":"litmusimage/amazonlinux:2","runner":"ubuntu-20.04"},',
28+
'{"label":"AmazonLinux-2023","provider":"docker","arch":"x86_64","image":"litmusimage/amazonlinux:2023","runner":"ubuntu-20.04"},',
29+
'{"label":"Ubuntu-18.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:18.04","runner":"ubuntu-20.04"},',
30+
'{"label":"Ubuntu-22.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:22.04","runner":"ubuntu-latest"}',
2931
'],',
3032
'"collection":[',
3133
'"puppet7-nightly","puppet8-nightly"',
@@ -91,12 +93,14 @@
9193
[
9294
'matrix={',
9395
'"platforms":[',
94-
'{"label":"RedHat-8","provider":"provision_service","arch":"x86_64","image":"rhel-8"},',
95-
'{"label":"RedHat-9","provider":"provision_service","arch":"x86_64","image":"rhel-9"},',
96-
'{"label":"RedHat-9-arm","provider":"provision_service","arch":"arm","image":"rhel-9-arm64"},',
97-
'{"label":"Ubuntu-18.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:18.04"},',
98-
'{"label":"Ubuntu-22.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:22.04"},',
99-
'{"label":"Ubuntu-22.04-arm","provider":"provision_service","arch":"arm","image":"ubuntu-2204-lts-arm64"}',
96+
'{"label":"AmazonLinux-2","provider":"docker","arch":"x86_64","image":"litmusimage/amazonlinux:2","runner":"ubuntu-20.04"},',
97+
'{"label":"AmazonLinux-2023","provider":"docker","arch":"x86_64","image":"litmusimage/amazonlinux:2023","runner":"ubuntu-20.04"},',
98+
'{"label":"RedHat-8","provider":"provision_service","arch":"x86_64","image":"rhel-8","runner":"ubuntu-latest"},',
99+
'{"label":"RedHat-9","provider":"provision_service","arch":"x86_64","image":"rhel-9","runner":"ubuntu-latest"},',
100+
'{"label":"RedHat-9-arm","provider":"provision_service","arch":"arm","image":"rhel-9-arm64","runner":"ubuntu-latest"},',
101+
'{"label":"Ubuntu-18.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:18.04","runner":"ubuntu-20.04"},',
102+
'{"label":"Ubuntu-22.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:22.04","runner":"ubuntu-latest"},',
103+
'{"label":"Ubuntu-22.04-arm","provider":"provision_service","arch":"arm","image":"ubuntu-2204-lts-arm64","runner":"ubuntu-latest"}',
100104
'],',
101105
'"collection":[',
102106
'"puppet7-nightly","puppet8-nightly"',
@@ -129,11 +133,13 @@
129133
[
130134
'matrix={',
131135
'"platforms":[',
132-
'{"label":"RedHat-8","provider":"provision_service","arch":"x86_64","image":"rhel-8"},',
133-
'{"label":"RedHat-9","provider":"provision_service","arch":"x86_64","image":"rhel-9"},',
134-
'{"label":"RedHat-9-arm","provider":"provision_service","arch":"arm","image":"rhel-9-arm64"},',
135-
'{"label":"Ubuntu-22.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:22.04"},',
136-
'{"label":"Ubuntu-22.04-arm","provider":"provision_service","arch":"arm","image":"ubuntu-2204-lts-arm64"}',
136+
'{"label":"AmazonLinux-2","provider":"docker","arch":"x86_64","image":"litmusimage/amazonlinux:2","runner":"ubuntu-20.04"},',
137+
'{"label":"AmazonLinux-2023","provider":"docker","arch":"x86_64","image":"litmusimage/amazonlinux:2023","runner":"ubuntu-20.04"},',
138+
'{"label":"RedHat-8","provider":"provision_service","arch":"x86_64","image":"rhel-8","runner":"ubuntu-latest"},',
139+
'{"label":"RedHat-9","provider":"provision_service","arch":"x86_64","image":"rhel-9","runner":"ubuntu-latest"},',
140+
'{"label":"RedHat-9-arm","provider":"provision_service","arch":"arm","image":"rhel-9-arm64","runner":"ubuntu-latest"},',
141+
'{"label":"Ubuntu-22.04","provider":"docker","arch":"x86_64","image":"litmusimage/ubuntu:22.04","runner":"ubuntu-latest"},',
142+
'{"label":"Ubuntu-22.04-arm","provider":"provision_service","arch":"arm","image":"ubuntu-2204-lts-arm64","runner":"ubuntu-latest"}',
137143
'],',
138144
'"collection":[',
139145
'"puppet7-nightly","puppet8-nightly"',
@@ -162,7 +168,7 @@
162168
end
163169

164170
context 'with --platform-exclude "ubuntu-(18.04|22.04)" --platform-exclude "redhat-[89]"' do
165-
let(:result) { run_matrix_from_metadata_v3(['--puppetlabs', '--platform-exclude', 'ubuntu-(18.04|22.04)', '--platform-exclude', 'redhat-[89]']) }
171+
let(:result) { run_matrix_from_metadata_v3(['--puppetlabs', '--platform-exclude', '(amazonlinux|ubuntu)-(2|18.04|22.04|2023)', '--platform-exclude', 'redhat-[89]']) }
166172
let(:matrix) do
167173
[
168174
'matrix={',

0 commit comments

Comments
 (0)