performance-regression-gates
Gates สำหรับตรวจจับ performance regression ผ่าน benchmarks, bundle size, และ load time monitoring
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Performance Regression Gates
Overview
Gates สำหรับป้องกัน performance regression - bundle size, response time, load time - ต้องไม่แย่ลงเกิน threshold
Why This Matters
- User experience: Slow app = bad UX
- Prevent degradation: จับก่อนถึง users
- Accountability: รู้ว่า PR ไหนทำให้ช้า
- Automated: ไม่ต้องทดสอบ manual
Performance Metrics
1. Bundle Size
# Check bundle size
npm run build
npm run analyze
# Threshold: No >10% increase
Before: 250 KB
After: 260 KB (+4%) ✓ Pass
After: 280 KB (+12%) ✗ Fail
2. Response Time
# API benchmark
npm run benchmark:api
# Threshold: No >20% slower
GET /users: 50ms → 55ms (+10%) ✓ Pass
GET /users: 50ms → 65ms (+30%) ✗ Fail
3. Load Time
# Lighthouse CI
npm run lighthouse
# Threshold: Score ≥90
Performance: 95 ✓ Pass
Performance: 85 ✗ Fail
CI Pipeline
# .github/workflows/performance.yml
name: Performance Gates
on: [pull_request]
jobs:
performance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: npm run build
- name: Bundle Size Check
uses: andresz1/size-limit-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
limit: 10% # Max 10% increase
- name: Lighthouse CI
uses: treosh/lighthouse-ci-action@v9
with:
runs: 3
assertions:
performance: 90
accessibility: 90
- name: API Benchmark
run: npm run benchmark:api
Configuration
Bundle Size Limit
{
"size-limit": [
{
"path": "dist/bundle.js",
"limit": "250 KB",
"gzip": true
}
]
}
Lighthouse Thresholds
{
"ci": {
"assert": {
"assertions": {
"performance": ["error", {"minScore": 0.9}],
"first-contentful-paint": ["error", {"maxNumericValue": 2000}],
"interactive": ["error", {"maxNumericValue": 3500}]
}
}
}
}
Summary
Performance Gates: ป้องกัน performance regression
Metrics:
- Bundle size: No >10% increase
- Response time: No >20% slower
- Lighthouse: Score ≥90
Tools:
- size-limit (bundle)
- Lighthouse CI (load time)
- Custom benchmarks (API)
Action: Block merge if regression detected
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!