-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yml
More file actions
101 lines (90 loc) · 2.58 KB
/
Copy pathaction.yml
File metadata and controls
101 lines (90 loc) · 2.58 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
name: "Mesen UX Audit"
description: "Behavioral UX testing through simulated user perspectives"
author: "RikaiDev"
branding:
icon: "eye"
color: "purple"
inputs:
url:
description: "URL to audit"
required: true
specs:
description: "Glob pattern for .ux spec files"
required: false
default: ""
tier:
description: "Execution tier: dom-only | quick | full"
required: false
default: "dom-only"
fail-on:
description: "Fail on: error | warning | never"
required: false
default: "error"
reporter:
description: "Output format: json | markdown | junit"
required: false
default: "json"
provider:
description: "VLM provider: anthropic | openai"
required: false
default: "anthropic"
model:
description: "VLM model name"
required: false
default: "claude-sonnet-4-20250514"
runs:
description: "Number of consistency runs for full tier"
required: false
default: "3"
outputs:
score:
description: "UX score (0-100)"
passed:
description: "Whether the audit passed"
result:
description: "Full audit result as JSON"
runs:
using: "composite"
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install Mesen
shell: bash
run: npm install -g mesen
- name: Run Mesen Audit
id: audit
shell: bash
env:
MESEN_URL: ${{ inputs.url }}
MESEN_SPEC: ${{ inputs.specs }}
MESEN_TIER: ${{ inputs.tier }}
MESEN_FAIL_ON: ${{ inputs.fail-on }}
MESEN_REPORTER: ${{ inputs.reporter }}
MESEN_PROVIDER: ${{ inputs.provider }}
MESEN_MODEL: ${{ inputs.model }}
MESEN_RUNS: ${{ inputs.runs }}
run: |
ARGS="run --url $MESEN_URL --tier $MESEN_TIER --fail-on $MESEN_FAIL_ON --reporter $MESEN_REPORTER"
if [ -n "$MESEN_SPEC" ]; then
ARGS="$ARGS --spec $MESEN_SPEC"
fi
if [ "$MESEN_TIER" != "dom-only" ]; then
ARGS="$ARGS --provider $MESEN_PROVIDER --model $MESEN_MODEL"
fi
if [ "$MESEN_TIER" = "full" ]; then
ARGS="$ARGS --runs $MESEN_RUNS"
fi
RESULT=$(mesen $ARGS 2>&1) || EXIT_CODE=$?
echo "result<<EOF" >> $GITHUB_OUTPUT
echo "$RESULT" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
if [ "${EXIT_CODE:-0}" -ne 0 ]; then
echo "passed=false" >> $GITHUB_OUTPUT
echo "score=0" >> $GITHUB_OUTPUT
exit $EXIT_CODE
else
echo "passed=true" >> $GITHUB_OUTPUT
echo "score=100" >> $GITHUB_OUTPUT
fi