Test any website for accessibility, performance, SEO, cross-browser compatibility, and 30+ QA dimensions — directly in your CI/CD pipeline.
- uses: kuality-io/action@v1
with:
api-key: ${{ secrets.KUALITY_API_KEY }}
url: https://staging.example.com
types: a11y,webvitals,seo
fail-on: high| Input | Required | Default | Description |
|---|---|---|---|
api-key |
Yes | — | Kuality API key (ku_... token) |
url |
Yes | — | URL to test |
types |
No | web |
Comma-separated test types |
fail-on |
No | high |
Fail on severity: high, medium, low, none |
score-threshold |
No | 0 |
Minimum score (0-100) |
max-high |
No | — | Max high-severity findings allowed |
max-medium |
No | — | Max medium-severity findings allowed |
| Output | Description |
|---|---|
status |
pass or fail |
score |
Overall quality score (0-100) |
high |
Total high-severity findings |
medium |
Total medium-severity findings |
low |
Total low-severity findings |
report-url |
Link to full report on kuality.io |
a11y, webvitals, seo, broken_links, headers, cookie, tech, cms, api, js_audit, ssl, email, web, firefox, webkit, uxaudit, animation, colorblind, assets, screenreader, performancebudget, assetaudit, bundlesize, ttfb, throttle, memoryleak, touchaudit, touchsize, orientation, pwa, mobilelighthouse, contract, graphql, openapi, privacyscan, csp, cors, synthetic, cdnaudit, formaudit
name: QA
on: [pull_request]
jobs:
quality:
runs-on: ubuntu-latest
steps:
- uses: kuality-io/action@v1
with:
api-key: ${{ secrets.KUALITY_API_KEY }}
url: https://staging.example.com
types: a11y
fail-on: high- uses: kuality-io/action@v1
with:
api-key: ${{ secrets.KUALITY_API_KEY }}
url: https://staging.example.com
types: a11y,webvitals,seo,broken_links,headers
fail-on: medium
score-threshold: 80- uses: kuality-io/action@v1
id: qa
with:
api-key: ${{ secrets.KUALITY_API_KEY }}
url: https://staging.example.com
types: a11y,webvitals
fail-on: none
- run: echo "Score is ${{ steps.qa.outputs.score }}"
- uses: actions/github-script@v7
if: github.event_name == 'pull_request'
with:
script: |
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `**Kuality QA:** ${{ steps.qa.outputs.status }} | Score: ${{ steps.qa.outputs.score }} | [Full report](${{ steps.qa.outputs.report-url }})`
})- Sign up at kuality.io
- Go to Organization Settings > API Keys
- Create a key and add it as a repository secret named
KUALITY_API_KEY
- kuality.io
- CI/CD Quality Gates
- Documentation (requires login)