Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MotionScore

MotionScore Guard

Audit animation performance on every pull request. MotionScore loads your pages in a real browser on the runner, grades them S to F (compositor vs paint vs layout cost, scroll animations, layout thrashing, GPU pressure), and comments the results on the PR.

The grades comment is free for any repository: no token, no account. Adding a MotionScore token and a threshold upgrades it into a gate that fails the build when a page grades below your bar.

Create a workflow file in your repository, for example .github/workflows/motionscore.yml:

name: MotionScore Guard
on: deployment_status
permissions:
  pull-requests: write
jobs:
  guard:
    runs-on: ubuntu-latest
    steps:
      - uses: motiondivision/motionscore-guard@v1

Vercel, Cloudflare Pages and Netlify all emit the deployment_status event with the preview URL; the action reads it from the event, waits for the deploy to succeed, and audits your homepage. Open a pull request and Guard appears in the PR's checks with a grades comment that updates on every push. Add a with: block to audit specific paths:

      - uses: motiondivision/motionscore-guard@v1
        with:
          pages: |
            /
            /pricing

Add the gate

With a paid MotionScore plan, add your API token as a repository secret named MOTIONSCORE_TOKEN (Settings → Secrets and variables → Actions, or gh secret set MOTIONSCORE_TOKEN) and extend the with: block:

          threshold: A
          token: ${{ secrets.MOTIONSCORE_TOKEN }}

Now the check fails whenever a page grades below threshold. Full step-by-step guide: score.motion.dev/docs/guard.

Inputs

Input Default Description
url auto Base URL to audit. Defaults to the preview URL on the deployment_status event
pages / Newline-separated paths, relative to url
threshold none Fail if any page grades worse than this tier (S/A/B/C/D/F). Requires a paid MotionScore plan and token. Empty = report-only comment
token none MotionScore API token, from your Motion dashboard, stored as the MOTIONSCORE_TOKEN repository secret
upload false Upload reports to score.motion.dev (consumes monthly audit slots, adds report links to the comment)
comment true Post or update a sticky PR comment
cli-version pinned motionscore CLI version to run

Outputs

  • grade: worst overall tier across the audited pages
  • pass: "true" when every page met the threshold (or no threshold was set)

Metering and cost

The browser runs on your GitHub runner, so audits cost you only runner minutes (roughly 1 to 3 per page; Chrome is cached between runs). Guard runs with --threshold are unmetered and consume none of your monthly audit allowance; only upload: true consumes slots.

Exit behaviour

The PR comment posts before the gate fires. The job fails with exit 1 when a page grades below threshold, and exit 2 when an audit could not run. If api.motion.dev is unreachable, the run warns and continues rather than failing your build.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages