Skip to content

Commit

Permalink
add lighthouse CI checks for core features
Browse files Browse the repository at this point in the history
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
  • Loading branch information
emmaindal committed Apr 13, 2023
1 parent cb807e0 commit 383f90e
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 0 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/verify_accessibility_core.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Verify Accessibility Core features
on:
pull_request:
branches: [master]
paths:
- 'plugins/catalog/**'
- 'plugins/techdocs/**'
- 'plugins/scaffolder/**'
- 'plugins/search/**'

jobs:
lhci:
name: Lighthouse
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: install dependencies
run: |
yarn install
- name: run Lighthouse CI
run: |
npm install -g @lhci/cli@0.11.x
lhci autorun
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,7 @@ tsconfig.tmp.json

# vscode database functionality support files
*.session.sql

# Lighthouse CI Reports
**/.lighthouseci/*
!**/.lighthouseci/scripts
11 changes: 11 additions & 0 deletions .lighthouseci/scripts/guest-auth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
'use strict';

module.exports = async (browser, context) => {
// launch browser for LHCI
const page = await browser.newPage();
await page.goto('http://localhost:3000');
await page.evaluate(() => {
localStorage.setItem('@backstage/core:SignInPage:provider', 'guest');
});
await page.goto('http://localhost:3000');
};
60 changes: 60 additions & 0 deletions lighthouserc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/*
* Copyright 2023 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
module.exports = {
ci: {
collect: {
url: [
/** Software Catalog */
'http://localhost:3000/catalog',
'http://localhost:3000/catalog-import',
'http://localhost:3000/catalog/default/component/backstage',
/** TechDocs */
'http://localhost:3000/docs',
'http://localhost:3000/docs/default/component/backstage',
/** Software Templates */
'http://localhost:3000/create',
'http://localhost:3000/create/tasks',
'http://localhost:3000/create/actions',
'http://localhost:3000/create/edit',
'http://localhost:3000/create/templates/default/react-ssr-template',
/** Search */
'http://localhost:3000/search',
],
settings: {
onlyCategories: ['accessibility'],
// need to disable storage reset because of auth
disableStorageReset: true,
output: ['html', 'json'],
outputPath: './.lighthouseci/reports',
preset: 'desktop',
},
startServerCommand: 'yarn dev',
startServerReadyTimeout: 600000,
numberOfRuns: 1,
puppeteerScript: './.lighthouseci/scripts/guest-auth.js',
startServerReadyPattern: 'Listening on :7007',
},
assert: {
assertions: {
'categories:performance': 'off',
'categories:pwa': 'off',
'categories:best-practices': 'off',
'categories:seo': 'off',
'categories:accessibility': ['error', { minScore: 0.85 }],
},
},
},
};

0 comments on commit 383f90e

Please sign in to comment.