Reduce GH Action minutes (#177)

* dont cache playwright

* prettier

* prettier

* fix crashing in form.test.ts

* prettier

* prettier

* fix crashing in form.test.ts
This commit is contained in:
Konnor Rogers
2024-09-19 11:22:57 -04:00
committed by GitHub
parent 43c5c009f0
commit 2970b3edf2
4 changed files with 34 additions and 60 deletions

View File

@@ -1,37 +1,6 @@
# # This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
# name: Node.js CI
# on:
# push:
# branches: [next]
# pull_request:
# branches: [next]
# jobs:
# build:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# node-version: [20.x]
# # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
# steps:
# - uses: actions/checkout@v4
# - name: Use Node.js ${{ matrix.node-version }}
# uses: actions/setup-node@v4
# with:
# node-version: ${{ matrix.node-version }}
# cache: 'npm'
# - run: npm ci
# - run: npx playwright install-deps
# - run: npm run verify
# # This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
@@ -41,7 +10,7 @@ on:
branches: [next]
jobs:
lint:
client_test:
runs-on: ubuntu-latest
strategy:
@@ -56,10 +25,19 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run prettier && npm run lint
test_client:
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run prettier && npm run lint
- name: Build
run: npm run build
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run CSR tests
# FAIL_FAST to fail on first failing test.
run: FAIL_FAST="true" CSR_ONLY="true" npm run test
ssr_test:
runs-on: ubuntu-latest
strategy:
@@ -74,28 +52,19 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npx playwright uninstall --all && npx playwright install --force chromium firefox webkit --with-deps
- run: npm run build
# --bail to fail on first failing test.
- run: CSR_ONLY="true" npm run test -- --bail
- name: Install dependencies
run: npm ci
# Just lint here too. Save some GH Action minutes and not need to use "depends_on" or anything.
- name: Lint
run: npm run prettier && npm run lint
test_ssr:
runs-on: ubuntu-latest
- name: Build
run: npm run build
strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run SSR tests
# FAIL_FAST to fail on first failing test.
run: FAIL_FAST="true" SSR_ONLY="true" npm run test
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npx playwright uninstall --all && npx playwright install --force chromium firefox webkit --with-deps
- run: npm run build
- run: SSR_ONLY="true" npm run test -- --bail

View File

@@ -47,7 +47,6 @@
"start:alpha": "node scripts/build.js --alpha --develop",
"publish-alpha-cdn": "./publish-alpha-cdn.sh",
"create": "plop --plopfile scripts/plop/plopfile.js",
"prepare": "npm i --ignore-scripts && npx playwright install",
"test": "web-test-runner --group default",
"test:component": "web-test-runner -- --watch --group",
"test:watch": "web-test-runner --watch --group default",

View File

@@ -1,4 +1,5 @@
import { aTimeout, expect, waitUntil } from '@open-wc/testing';
import { clickOnElement } from './test.js';
import { fixtures } from './test/fixture.js';
import { html } from 'lit';
import sinon from 'sinon';
@@ -8,7 +9,6 @@ describe('Form tests', () => {
describe(`with "${fixture.type}" rendering`, () => {
// Reproduction of this issue: https://github.com/shoelace-style/shoelace/issues/1703
it('Should still run form validations if an element is removed', async () => {
await aTimeout(500);
const form = await fixture<HTMLFormElement>(html`
<form>
<wa-input name="name" label="Name" required></wa-input>
@@ -28,6 +28,10 @@ describe('Form tests', () => {
expect(form.checkValidity()).to.equal(false);
expect(form.reportValidity()).to.equal(false);
// This is silly,but it fixes an issue with `reportValidity()` causing WebKit to crash.
await clickOnElement(document.body);
await aTimeout(100);
});
it('should submit the correct form values', async () => {

View File

@@ -33,7 +33,9 @@ export default {
testFramework: {
config: {
timeout: 3000,
retries: 1
retries: 1,
// fails the whole test suite on first failure rather than letting the whole test suite run.
bail: process.env['FAIL_FAST'] === 'true'
}
},
plugins: [