Skip to content

Commit 12a0a6c

Browse files
committed
Refine matrix.rb arguments
1 parent 852de3b commit 12a0a6c

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

Diff for: .github/workflows/test-callable.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: Compute matrix
2424
id: matrix
2525
run: |
26-
matrix="$(ruby matrix.rb ${{ inputs.engine_name }} ${{ inputs.engine_version }})"
26+
matrix="$(ruby matrix.rb engine.name:${{ inputs.engine_name }} engine.version:${{ inputs.engine_version }})"
2727
echo "${matrix}"
2828
echo "${matrix}" | jq
2929
echo "matrix=${matrix}" >> $GITHUB_OUTPUT

Diff for: matrix.rb

+27-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,33 @@
4646
end
4747
end
4848

49-
if (for_engine = ARGV[0]) && (for_version = ARGV[1])
50-
matrix.select! { |e| e[:engine][:name] == for_engine && e[:engine][:version] == for_version }
49+
selected_engine_name = nil
50+
selected_engine_version = nil
51+
selected_spec_task = nil
52+
selected_spec_appraisal = nil
53+
ARGV.each do |arg|
54+
case arg
55+
when /^engine.name:(\S+)/ then selected_engine_name = $1
56+
when /^engine.version:(\S+)/ then selected_engine_version = $1
57+
when /^spec.task:(\S+)/ then selected_spec_task = $1
58+
when /^spec.appraisal:(\S+)/ then selected_spec_appraisal = $1
59+
end
60+
end
61+
62+
if selected_engine_name
63+
matrix.select! { |e| e[:engine][:name] == selected_engine_name }
64+
end
65+
66+
if selected_engine_version
67+
matrix.select! { |e| e[:engine][:version] == selected_engine_version }
68+
end
69+
70+
if selected_spec_task
71+
matrix.select! { |e| e[:spec][:task] == selected_spec_task }
72+
end
73+
74+
if selected_spec_appraisal
75+
matrix.select! { |e| e[:spec][:appraisal] == selected_spec_appraisal }
5176
end
5277

5378
puts(JSON.dump({ include: matrix }))

0 commit comments

Comments
 (0)