Skip to content

Commit 8c96cb4

Browse files
authored
ci: combine test-browser tests, don't run tests when only docs are changed (#6221)
1 parent 0a17989 commit 8c96cb4

File tree

2 files changed

+48
-72
lines changed

2 files changed

+48
-72
lines changed

.github/workflows/ci.yml

Lines changed: 47 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -53,131 +53,106 @@ jobs:
5353
steps:
5454
- uses: actions/checkout@v4
5555

56+
- name: Get changed files
57+
id: changed-files
58+
uses: tj-actions/changed-files@ea251d4d2f03a9c18841ae1b752f58b82dfb4d5e # v35.3.0
59+
with:
60+
files: |
61+
docs/**
62+
.github/**
63+
!.github/workflows/ci.yml
64+
**.md
65+
5666
- uses: ./.github/actions/setup-and-cache
67+
if: steps.changed-files.outputs.only_changed != 'true'
5768
with:
5869
node-version: ${{ matrix.node_version }}
5970

6071
- uses: browser-actions/setup-chrome@v1
72+
if: steps.changed-files.outputs.only_changed != 'true'
6173

6274
- name: Install
75+
if: steps.changed-files.outputs.only_changed != 'true'
6376
run: pnpm i
6477

6578
- name: Install Playwright Dependencies
66-
run: pnpm exec playwright install --with-deps
79+
if: steps.changed-files.outputs.only_changed != 'true'
80+
run: pnpm exec playwright install chromium --with-deps
6781

6882
- name: Build
83+
if: steps.changed-files.outputs.only_changed != 'true'
6984
run: pnpm run build
7085

7186
- name: Test
87+
if: steps.changed-files.outputs.only_changed != 'true'
7288
run: pnpm run test:ci
7389

7490
- name: Test Examples
91+
if: steps.changed-files.outputs.only_changed != 'true'
7592
run: pnpm run test:examples
7693

77-
test-ui:
78-
strategy:
79-
matrix:
80-
os: [ubuntu-latest, macos-14, windows-latest]
81-
fail-fast: false
82-
83-
runs-on: ${{ matrix.os }}
84-
85-
timeout-minutes: 30
86-
87-
steps:
88-
- uses: actions/checkout@v4
89-
90-
- uses: ./.github/actions/setup-and-cache
91-
with:
92-
node-version: 20
93-
94-
- name: Install
95-
run: pnpm i
96-
97-
- name: Install Playwright Dependencies
98-
run: pnpm exec playwright install chromium
99-
100-
- name: Build
101-
run: pnpm run build
102-
10394
- name: Unit Test UI
95+
if: steps.changed-files.outputs.only_changed != 'true'
10496
run: pnpm run -C packages/ui test:ui
10597

106-
- name: E2E Test UI
107-
run: pnpm -C test/ui test-e2e
108-
10998
test-browser:
110-
runs-on: ubuntu-latest
99+
runs-on: ${{ matrix.os }}
111100
strategy:
112101
matrix:
113-
browser: [[chrome, chromium], [firefox, firefox], [edge, webkit]]
102+
os:
103+
- macos-14
104+
- windows-latest
105+
browser:
106+
- [chromium, chrome]
107+
- [firefox, firefox]
108+
- [webkit]
114109
fail-fast: false
115110

116111
timeout-minutes: 30
117112

118113
steps:
119114
- uses: actions/checkout@v4
120115

116+
- name: Get changed files
117+
id: changed-files
118+
uses: tj-actions/changed-files@ea251d4d2f03a9c18841ae1b752f58b82dfb4d5e # v35.3.0
119+
with:
120+
files: |
121+
docs/**
122+
.github/**
123+
!.github/workflows/ci.yml
124+
**.md
125+
121126
- uses: ./.github/actions/setup-and-cache
127+
if: steps.changed-files.outputs.only_changed != 'true'
122128
with:
123129
node-version: 20
124130

125131
- uses: browser-actions/setup-chrome@v1
132+
if: ${{ steps.changed-files.outputs.only_changed != 'true' && matrix.browser[0] == 'chromium' }}
126133
- uses: browser-actions/setup-firefox@v1
134+
if: ${{ steps.changed-files.outputs.only_changed != 'true' && matrix.browser[0] == 'firefox' }}
127135

128136
- name: Install
137+
if: steps.changed-files.outputs.only_changed != 'true'
129138
run: pnpm i
130139

131140
- name: Install Playwright Dependencies
132-
run: pnpm exec playwright install --with-deps
141+
if: steps.changed-files.outputs.only_changed != 'true'
142+
run: pnpm exec playwright install ${{ matrix.browser[0] }} --with-deps
133143

134144
- name: Build
145+
if: steps.changed-files.outputs.only_changed != 'true'
135146
run: pnpm run build
136147

137-
- name: Test Browser (webdriverio)
138-
run: pnpm run test:browser:webdriverio
139-
env:
140-
BROWSER: ${{ matrix.browser[0] }}
141-
142148
- name: Test Browser (playwright)
149+
if: steps.changed-files.outputs.only_changed != 'true'
143150
run: pnpm run test:browser:playwright
144151
env:
145-
BROWSER: ${{ matrix.browser[1] }}
146-
147-
test-browser-windows:
148-
runs-on: windows-latest
149-
strategy:
150-
matrix:
151-
browser: [[chrome, chromium], [edge, webkit]]
152-
fail-fast: false
153-
154-
timeout-minutes: 30
155-
156-
steps:
157-
- uses: actions/checkout@v4
158-
159-
- uses: ./.github/actions/setup-and-cache
160-
with:
161-
node-version: 20
162-
163-
- uses: browser-actions/setup-chrome@v1
164-
- uses: browser-actions/setup-edge@v1
165-
166-
- name: Install
167-
run: pnpm i
168-
169-
- name: Install Playwright Dependencies
170-
run: pnpm exec playwright install --with-deps
171-
172-
- name: Build
173-
run: pnpm run build
152+
BROWSER: ${{ matrix.browser[0] }}
174153

175154
- name: Test Browser (webdriverio)
176155
run: pnpm run test:browser:webdriverio
177-
env:
178-
BROWSER: ${{ matrix.browser[0] }}
179-
180-
- name: Test Browser (playwright)
181-
run: pnpm run test:browser:playwright
156+
if: ${{ steps.changed-files.outputs.only_changed != 'true' && matrix.browser[1] }}
182157
env:
183158
BROWSER: ${{ matrix.browser[1] }}

test/ui/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"type": "module",
44
"private": true,
55
"scripts": {
6+
"test": "GITHUB_ACTIONS=false playwright test",
67
"test-e2e": "GITHUB_ACTIONS=false playwright test",
78
"test-e2e-ui": "GITHUB_ACTIONS=false playwright test --ui",
89
"test-fixtures": "vitest"

0 commit comments

Comments
 (0)