@@ -31,9 +31,10 @@ concurrency:
3131 cancel-in-progress : true
3232
3333jobs :
34- webui-setup :
35- name : WebUI Setup
34+ webui-check :
35+ name : WebUI Checks
3636 runs-on : ubuntu-latest
37+ continue-on-error : true
3738 steps :
3839 - name : Checkout code
3940 uses : actions/checkout@v4
@@ -42,137 +43,60 @@ jobs:
4243 ref : ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}
4344
4445 - name : Setup Node.js
46+ id : setup
4547 uses : actions/setup-node@v4
4648 with :
4749 node-version : " 22"
4850 cache : " npm"
4951 cache-dependency-path : " tools/server/webui/package-lock.json"
5052
51- - name : Cache node_modules
52- uses : actions/cache@v4
53- id : cache-node-modules
54- with :
55- path : tools/server/webui/node_modules
56- key : ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }}
57- restore-keys : |
58- ${{ runner.os }}-node-modules-
59-
60- - name : Install dependencies
61- if : steps.cache-node-modules.outputs.cache-hit != 'true'
62- run : npm ci
63- working-directory : tools/server/webui
64-
65- webui-check :
66- needs : webui-setup
67- name : WebUI Check
68- runs-on : ubuntu-latest
69- steps :
70- - name : Checkout code
71- uses : actions/checkout@v4
72- with :
73- fetch-depth : 0
74- ref : ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}
75-
76- - name : Setup Node.js
77- uses : actions/setup-node@v4
78- with :
79- node-version : " 22"
80-
81- - name : Restore node_modules cache
82- uses : actions/cache@v4
83- with :
84- path : tools/server/webui/node_modules
85- key : ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }}
86- restore-keys : |
87- ${{ runner.os }}-node-modules-
88-
8953 - name : Run type checking
54+ if : ${{ steps.setup.conclusion == 'success' }}
9055 run : npm run check
9156 working-directory : tools/server/webui
9257
9358 - name : Run linting
59+ if : ${{ steps.setup.conclusion == 'success' }}
9460 run : npm run lint
9561 working-directory : tools/server/webui
9662
97- webui-build :
98- needs : webui-check
99- name : WebUI Build
100- runs-on : ubuntu-latest
101- steps :
102- - name : Checkout code
103- uses : actions/checkout@v4
104- with :
105- fetch-depth : 0
106- ref : ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}
107-
108- - name : Setup Node.js
109- uses : actions/setup-node@v4
110- with :
111- node-version : " 22"
112-
113- - name : Restore node_modules cache
114- uses : actions/cache@v4
115- with :
116- path : tools/server/webui/node_modules
117- key : ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }}
118- restore-keys : |
119- ${{ runner.os }}-node-modules-
120-
12163 - name : Build application
64+ if : ${{ steps.setup.conclusion == 'success' }}
12265 run : npm run build
12366 working-directory : tools/server/webui
12467
125- webui-tests :
126- needs : webui-build
127- name : Run WebUI tests
128- permissions :
129- contents : read
130-
131- runs-on : ubuntu-latest
132-
133- steps :
134- - name : Checkout code
135- uses : actions/checkout@v4
136-
137- - name : Setup Node.js
138- uses : actions/setup-node@v4
139- with :
140- node-version : " 22"
141-
142- - name : Restore node_modules cache
143- uses : actions/cache@v4
144- with :
145- path : tools/server/webui/node_modules
146- key : ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }}
147- restore-keys : |
148- ${{ runner.os }}-node-modules-
149-
15068 - name : Install Playwright browsers
69+ id : playwright
70+ if : ${{ steps.setup.conclusion == 'success' }}
15171 run : npx playwright install --with-deps
15272 working-directory : tools/server/webui
15373
15474 - name : Build Storybook
75+ if : ${{ steps.playwright.conclusion == 'success' }}
15576 run : npm run build-storybook
15677 working-directory : tools/server/webui
15778
15879 - name : Run Client tests
80+ if : ${{ steps.playwright.conclusion == 'success' }}
15981 run : npm run test:client
16082 working-directory : tools/server/webui
16183
162- - name : Run Server tests
163- run : npm run test:server
84+ - name : Run Unit tests
85+ if : ${{ steps.playwright.conclusion == 'success' }}
86+ run : npm run test:unit
16487 working-directory : tools/server/webui
16588
16689 - name : Run UI tests
90+ if : ${{ steps.playwright.conclusion == 'success' }}
16791 run : npm run test:ui -- --testTimeout=60000
16892 working-directory : tools/server/webui
16993
17094 - name : Run E2E tests
95+ if : ${{ steps.playwright.conclusion == 'success' }}
17196 run : npm run test:e2e
17297 working-directory : tools/server/webui
17398
17499 server-build :
175- needs : [webui-tests]
176100 runs-on : ubuntu-latest
177101
178102 strategy :
0 commit comments