-
Notifications
You must be signed in to change notification settings - Fork 900
161 lines (150 loc) · 5.16 KB
/
test-changed.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Test Modified Packages
on: pull_request
env:
artifactRetentionDays: 14
# Bump Node memory limit
NODE_OPTIONS: "--max_old_space_size=4096"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# Fetch all Git history so that the build:changed script can use diffs
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: yarn
cache-dependency-path: yarn.lock
- name: Restore cached node_modules
uses: actions/cache@v4
id: node_modules
with:
path: "**/node_modules"
key: node_modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- run: yarn install --frozen-lockfile
- name: install Chrome stable
run: |
npx @puppeteer/browsers install chrome@stable
- name: Test setup
run: cp config/ci.config.json config/project.json
- run: yarn build:changed core
- name: Upload build archive
uses: actions/upload-artifact@v4
with:
name: dists-changed-core-${{ github.sha }}
path: |
packages/**/dist
repo-scripts/**/dist
retention-days: ${{ env.artifactRetentionDays }}
test-chrome:
name: Test Packages With Changed Files in Chrome and Node
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
# This makes Actions fetch all Git history so run-changed script can diff properly.
fetch-depth: 0
- name: Download build archive
uses: actions/download-artifact@v4
with:
name: dists-changed-core-${{ github.sha }}
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: yarn
cache-dependency-path: yarn.lock
- name: Restore cached node_modules
uses: actions/cache@v4
id: node_modules
with:
path: "**/node_modules"
key: node_modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- run: yarn install --frozen-lockfile
- name: install Chrome stable
run: |
sudo apt-get update
sudo apt-get install google-chrome-stable
- run: cp config/ci.config.json config/project.json
- name: Run tests on changed packages
run: xvfb-run yarn test:changed core
test-firefox:
name: Test Packages With Changed Files in Firefox
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download build archive
uses: actions/download-artifact@v4
with:
name: dists-changed-core-${{ github.sha }}
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: yarn
cache-dependency-path: yarn.lock
- name: Restore cached node_modules
uses: actions/cache@v4
id: node_modules
with:
path: "**/node_modules"
key: node_modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- run: yarn install --frozen-lockfile
- name: install Firefox stable
run: npx @puppeteer/browsers install firefox@stable
- name: Test setup and yarn install
run: cp config/ci.config.json config/project.json
- name: Run tests on changed packages
run: xvfb-run yarn test:changed core
env:
BROWSERS: 'Firefox'
test-webkit:
name: Test Packages With Changed Files in Webkit
needs: build
runs-on: macos-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download build archive
uses: actions/download-artifact@v4
with:
name: dists-changed-core-${{ github.sha }}
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: yarn
cache-dependency-path: yarn.lock
- name: Restore cached node_modules
uses: actions/cache@v4
id: node_modules
with:
path: "**/node_modules"
key: node_modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- run: yarn install --frozen-lockfile
- run: cp config/ci.config.json config/project.json
- run: npx playwright install webkit
- name: Run tests on changed packages
run: yarn test:changed core
env:
BROWSERS: 'WebkitHeadless'