-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yaml
More file actions
47 lines (43 loc) · 1.72 KB
/
Copy pathaction.yaml
File metadata and controls
47 lines (43 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
name: "Collect Format Results"
description: "Aggregates results from multiple formatting jobs and creates a summary comment."
inputs:
results-json:
description: "JSON object containing job results"
required: true
outputs:
message:
description: "The formatted summary message"
value: ${{ steps.collect.outputs.message }}
has_failures:
description: "Whether any job failed"
value: ${{ steps.collect.outputs.has_failures }}
runs:
using: "composite"
steps:
- name: Aggregate results
id: collect
shell: bash
env:
RESULTS_JSON: ${{ inputs.results-json }}
run: |
python3 -c "
import json, os
data = json.loads(os.environ['RESULTS_JSON'])
messages = []
has_failures = False
for name, res in data.items():
if res['result'] in ['failure', 'cancelled', 'skipped']:
messages.append(f'❌ {name} workflow {res[\"result\"]}')
has_failures = True
elif res.get('changes') == 'true':
if res.get('pushed') == 'true':
messages.append(f'✅ {name} fixes pushed (commit {res.get(\"sha\", \"\")})')
elif res.get('patch_name'):
messages.append(f'⚠️ {name} fixes available as patch {res.get(\"patch_name\")}')
output_msg = 'No automatic format fixes were necessary.'
if messages:
output_msg = '### Format Fixes Applied\n' + '\n'.join(messages) + '\n\n⚠️ **Note:** Some issues may require manual review.'
with open(os.environ['GITHUB_OUTPUT'], 'a') as f:
f.write(f'message<<EOF\n{output_msg}\nEOF\n')
f.write(f'has_failures={str(has_failures).lower()}\n')
"