-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (102 loc) · 3.44 KB
/
tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Tests
on: [push]
defaults:
run:
working-directory: ./components
jobs:
linter:
name: Run checks and build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('components/**/package-lock.json') }}
- name: Install npm packages
run: npm ci && npm run generate-manifest
- name: Check format
run: npm run check-format
- name: Check types
run: npm run check-types
- name: Check dependencies
run: npm run check-dependencies
- name: Run linter
run: npm run lint
- name: Build
run: npm run build
unit_tests:
name: Run unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('components/**/package-lock.json') }}
- name: Install npm packages
run: npm ci
- name: Run unit test
run: npm run test
storybook_tests:
name: Run storybook tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('components/**/package-lock.json') }}
- name: Install npm packages
run: |
npm ci
npm run generate-manifest
- name: Get Installed Playwright Version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package-lock.json').packages['node_modules/playwright'].version)")" >> $GITHUB_ENV
- name: Cache Playwright Browsers
uses: actions/cache@v4
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
- name: Install Playwright Browsers and System Dependencies
run: npx playwright install --with-deps
if: steps.playwright-cache.outputs.cache-hit != 'true'
- name: Install only System Dependencies
run: npx playwright install-deps
if: steps.playwright-cache.outputs.cache-hit == 'true'
- name: build Storybook
run: npm run build-storybook -- --quiet
- name: build Preact Storybook
run: npm run build-storybook-preact -- --quiet
- name: Start Storybook server
run:
npx http-server storybook-static --port 6006 --silent &
npx http-server storybook-static-preact --port 6007 --silent &
- name: Wait for Preact Storybook server to be ready
run: npx wait-on tcp:6007
- name: Run Preact Storybook tests
run: npm run test:storybook:preact
- name: Wait for Storybook server to be ready
run: npx wait-on tcp:6006
- name: Run Storybook tests
run: npm run test:storybook
- name: Run Playwright tests
run: npm run test:playwright
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: components/playwright-report/
retention-days: 7