-
Notifications
You must be signed in to change notification settings - Fork 0
154 lines (147 loc) · 5.59 KB
/
Copy pathtest-ui.yml
File metadata and controls
154 lines (147 loc) · 5.59 KB
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: "Test UI"
on:
workflow_dispatch:
push:
branches:
- "main"
- "release-*"
pull_request:
paths:
- "*"
- '.github/workflows/test-ui.yml'
- "vuu-ui/**"
jobs:
lint-and-typecheck:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Install Node & dependencies
uses: ./.github/actions/setup-vuu-ui
- run: cd ./vuu-ui && npm run build:worker
- run: cd ./vuu-ui && npm run lint
- run: cd ./vuu-ui && npm run typecheck
vitest:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Install Node & dependencies
uses: ./.github/actions/setup-vuu-ui
- run: cd ./vuu-ui && npm run test:vite
playwright-gallery-build:
runs-on: ubuntu-latest
name: playwright-gallery-build
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Install Node & dependencies
uses: ./.github/actions/setup-vuu-ui
- name: Build Worker
run: cd ./vuu-ui && npm run build:worker
- name: Build Playwright gallery
env:
PLAYWRIGHT_COVERAGE: "1"
run: cd ./vuu-ui && npm run playwright:gallery:build
- name: Upload Playwright gallery
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: playwright-gallery
path: vuu-ui/playwright/gallery/dist/
retention-days: 1
playwright-component:
runs-on: ubuntu-latest
name: playwright-component (${{ matrix.browser }})
needs: playwright-gallery-build
strategy:
matrix:
browser: [chromium, firefox, webkit]
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Install Node & dependencies
uses: ./.github/actions/setup-vuu-ui
- name: Download Playwright gallery
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: playwright-gallery
path: vuu-ui/playwright/gallery/dist
- name: Build Worker
run: cd ./vuu-ui && npm run build:worker
- name: Install Playwright Browser
run: cd ./vuu-ui && npm exec -- playwright install --with-deps ${{ matrix.browser }}
- name: Run Playwright component tests
env:
PLAYWRIGHT_COVERAGE: ${{ matrix.browser == 'chromium' && '1' || '0' }}
run: cd ./vuu-ui && npm exec -- playwright test --config=playwright.config.ts --project=components-${{ matrix.browser }}
- name: Upload blob report to GitHub Actions Artifacts
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
if: always()
with:
name: blob-report-${{ matrix.browser }}
path: vuu-ui/blob-report/
retention-days: 10
- name: Upload Chromium coverage data
if: always() && matrix.browser == 'chromium'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: coverage-data
path: vuu-ui/playwright/coverage-data/
retention-days: 10
playwright-merge-reports:
runs-on: ubuntu-latest
needs: playwright-component
if: always()
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Download blob reports from GitHub Actions Artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
with:
path: all-blob-reports
pattern: blob-report-*
merge-multiple: true
- name: Download Chromium coverage data
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
with:
path: all-coverage-data
pattern: coverage-data
merge-multiple: true
- name: Install Node & dependencies
uses: ./.github/actions/setup-vuu-ui
- name: Merge into HTML and JSON Reports
run: PLAYWRIGHT_JSON_OUTPUT_FILE=playwright-report/test-results.json npx playwright merge-reports --reporter html,json ./all-blob-reports
- name: Generate Playwright coverage report
run: |
mkdir -p ./vuu-ui/playwright/coverage-data
cp ./all-coverage-data/*.json ./vuu-ui/playwright/coverage-data/
cd ./vuu-ui && npm run playwright:coverage 2>&1 | tee -a "$GITHUB_STEP_SUMMARY"
- name: Upload Playwright coverage report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
if: always()
with:
name: playwright-coverage
path: vuu-ui/playwright/coverage/
retention-days: 10
- name: Upload Merged Playwright Report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 10
- name: Add Playwright Results to Summary
if: always()
run: ./.github/scripts/generate-playwright-summary.sh playwright-report/test-results.json >> $GITHUB_STEP_SUMMARY
# ensure the vuu example still builds
vuu-app-build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
- name: Install Node & dependencies
uses: ./.github/actions/setup-vuu-ui
- name: Build Vuu Libraries
run: cd ./vuu-ui && npm run build
- name: Build Vuu app
run: cd ./vuu-ui && npm run build:app