add lighthouse CI checks for core features

Signed-off-by: Emma Indal <emma.indahl@gmail.com>
This commit is contained in:
Emma Indal
2023-04-13 16:49:26 +02:00
parent cb807e097a
commit 383f90e788
4 changed files with 104 additions and 0 deletions
@@ -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
View File
@@ -152,3 +152,7 @@ tsconfig.tmp.json
# vscode database functionality support files
*.session.sql
# Lighthouse CI Reports
**/.lighthouseci/*
!**/.lighthouseci/scripts
+11
View File
@@ -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
View File
@@ -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 }],
},
},
},
};