Skip to content

Commit

Permalink
feat: 336 - configure workflow for lighthouse to run on deployments
Browse files Browse the repository at this point in the history
  • Loading branch information
Wystov committed Jun 28, 2024
1 parent 3051056 commit 07dc33d
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/lighthouse.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Lighthouse test

on:
repository_dispatch:
types: [preview-created]

jobs:
lighthouse:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install dependencies
run: npm install && npm install -g @lhci/[email protected]

- name: Run Lighthouse
run: lhci autorun --collect.url=https://pr${{ github.event.client_payload.number }}.rs.school

- name: Upload Lighthouse artifacts
uses: actions/upload-artifact@v4
with:
name: lighthouse-report
path: '.lighthouseci/*'

- name: Generate Lighthouse report summary
id: generate_report
run: |
REPORT_PATH=$(ls .lighthouseci/lhr-*.json | head -n 1)
FINAL_URL=$(jq -r '.finalUrl' "$REPORT_PATH")
LINKS_PATH=$(ls .lighthouseci/links.json | head -n 1)
REPORT_URL=$(jq -r --arg FINAL_URL "$FINAL_URL" '.[$FINAL_URL]' "$LINKS_PATH")
PERFORMANCE=$(jq -r '.categories.performance.score * 100' "$REPORT_PATH")
ACCESSIBILITY=$(jq -r '.categories.accessibility.score * 100' "$REPORT_PATH")
BEST_PRACTICES=$(jq -r '.categories["best-practices"].score * 100' "$REPORT_PATH")
SEO=$(jq -r '.categories.seo.score * 100' "$REPORT_PATH")
echo "performance=$PERFORMANCE" >> $GITHUB_OUTPUT
echo "accessibility=$ACCESSIBILITY" >> $GITHUB_OUTPUT
echo "bestPractices=$BEST_PRACTICES" >> $GITHUB_OUTPUT
echo "seo=$SEO" >> $GITHUB_OUTPUT
echo "reportUrl=$REPORT_URL" >> $GITHUB_OUTPUT
- name: Post Lighthouse results to PR
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.client_payload.number }}
body: |
**Lighthouse Report**:
- Performance: ${{ steps.generate_report.outputs.performance }} / 100
- Accessibility: ${{ steps.generate_report.outputs.accessibility }} / 100
- Best Practices: ${{ steps.generate_report.outputs.bestPractices }} / 100
- SEO: ${{ steps.generate_report.outputs.seo }} / 100
[View detailed report](${{ steps.generate_report.outputs.reportUrl }})
8 changes: 8 additions & 0 deletions lighthouserc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"ci": {
"collect": { "numberOfRuns": 1 },
"upload": {
"target": "temporary-public-storage"
}
}
}

0 comments on commit 07dc33d

Please sign in to comment.