-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yml
More file actions
34 lines (34 loc) · 1.39 KB
/
action.yml
File metadata and controls
34 lines (34 loc) · 1.39 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
name: 'QualityMax Test Grader'
description: 'Grade Playwright tests A-F. Lighthouse for test quality.'
branding:
icon: 'check-circle'
color: 'purple'
inputs:
test-dir:
description: 'Glob pattern for test files'
required: true
default: 'tests/**/*.spec.ts'
min-grade:
description: 'Minimum passing grade (A/B/C/D/F)'
required: false
default: 'B'
comment:
description: 'Post grade summary as PR comment'
required: false
default: 'true'
runs:
using: 'composite'
steps:
- shell: bash
run: |
npm install -g qualitymax-grader@0.2.0 2>/dev/null || npx qualitymax-grader@0.2.0 --version
- id: grade
shell: bash
run: |
npx qualitymax-grader@0.2.0 ${{ inputs.test-dir }} --json --min-grade ${{ inputs.min-grade }} > grade-results.json || true
SUMMARY=$(cat grade-results.json | node -e "const d=JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')); console.log('**Test Quality:** ' + d.summary.averageGrade + ' (' + d.summary.averageScore + '/100) | Passed: ' + d.summary.passed + ' | Failed: ' + d.summary.failed);")
echo "summary=$SUMMARY" >> $GITHUB_OUTPUT
echo "$SUMMARY"
# Check if any failed
FAILED=$(cat grade-results.json | node -e "const d=JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')); console.log(d.summary.failed);")
if [ "$FAILED" != "0" ]; then exit 1; fi