name: Performance Monitoring
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
lighthouse:
runs-on: ubuntu-latest
if: contains(github.event.repository.topics, 'frontend') || contains(github.event.repository.topics, 'web')
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build --if-present
- name: Run Lighthouse CI
uses: treosh/lighthouse-ci-action@v10
with:
configPath: '.github/lighthouse/lighthouserc.json'
uploadArtifacts: true
temporaryPublicStorage: true
bundle-analysis:
runs-on: ubuntu-latest
if: contains(github.event.repository.topics, 'frontend') || contains(github.event.repository.topics, 'typescript')
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Analyze bundle
uses: nextcloud/webpack-bundle-analyzer@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
report: true