1
1
version : 2.1
2
2
3
3
orbs :
4
- browser-tools :
circleci/[email protected]
4
+
5
5
6
6
executors :
7
7
node :
@@ -13,18 +13,16 @@ executors:
13
13
docker :
14
14
- image : cimg/node:20.18-browsers
15
15
environment :
16
- NODE_OPTIONS : " --openssl-legacy-provider"
16
+ NODE_OPTIONS : ' --openssl-legacy-provider'
17
17
node18 :
18
18
docker :
19
19
- image : cimg/node:18.20-browsers
20
20
21
21
references :
22
-
23
22
#
24
23
# Workspace
25
24
#
26
- container_config_node :
27
- &container_config_node
25
+ container_config_node : &container_config_node
28
26
working_directory : ~/project/build
29
27
parameters :
30
28
executor :
@@ -34,84 +32,64 @@ references:
34
32
35
33
workspace_root : &workspace_root ~/project
36
34
37
- attach_workspace :
38
- &attach_workspace
35
+ attach_workspace : &attach_workspace
39
36
attach_workspace :
40
37
at : *workspace_root
41
38
42
- # Cache creation
43
- #
44
- create_cache :
45
- &create_cache
46
- save_cache :
47
- key : cache-v1-{{ .Branch }}-{{ checksum "./package.json" }}
48
- paths :
49
- - ./node_modules/
50
-
51
- # Cache restoration
52
- #
53
- restore_cache :
54
- &restore_cache
55
- restore_cache :
56
- keys :
57
- - cache-v1-{{ .Branch }}-{{ checksum "./package.json" }}
58
-
59
39
# Filters
60
40
#
61
- filters_only_main :
62
- &filters_only_main
41
+ filters_only_main : &filters_only_main
63
42
branches :
64
43
only :
65
44
- main
66
45
67
- filters_only_renovate_nori :
68
- &filters_only_renovate_nori
69
- branches :
70
- only : /(^renovate-.*|^nori\/.*)/
71
-
72
- filters_ignore_tags_renovate_nori_build :
73
- &filters_ignore_tags_renovate_nori_build
74
- tags :
75
- ignore : /.*/
76
- branches :
77
- ignore : /(^renovate-.*|^nori\/.*|^gh-pages)/
78
-
79
- filters_main_branch :
80
- &filters_main_branch
46
+ filters_main_branch : &filters_main_branch
81
47
branches :
82
48
only :
83
49
- main
84
50
85
- filters_release_build :
86
- &filters_release_build
51
+ filters_release_build : &filters_release_build
87
52
tags :
88
53
only :
89
54
- /^v\d+\.\d+\.\d+$/
90
55
branches :
91
56
ignore : /.*/
92
57
93
- filters_prerelease_build :
94
- &filters_prerelease_build
58
+ filters_prerelease_build : &filters_prerelease_build
95
59
tags :
96
60
only :
97
61
- /^v\d+\.\d+\.\d+(?:-\w+\.\d+)$/
98
62
branches :
99
63
ignore : /.*/
100
64
101
65
jobs :
102
-
103
- build :
66
+ checkout :
104
67
<< : *container_config_node
105
68
steps :
106
69
- checkout
107
- - *restore_cache
108
- - run :
109
- name : Install project dependencies
110
- command : npm install
70
+ - persist_to_workspace :
71
+ root : *workspace_root
72
+ paths :
73
+ - build
74
+ setup :
75
+ << : *container_config_node
76
+ steps :
77
+ - *attach_workspace
78
+ - node/install-packages
79
+ - persist_to_workspace :
80
+ root : *workspace_root
81
+ paths :
82
+ - build
83
+ build :
84
+ << : *container_config_node
85
+ steps :
86
+ - *attach_workspace
111
87
- run :
112
88
name : Run build
113
89
command : npm run build
114
- - *create_cache
90
+ - run :
91
+ name : Run build in examples/
92
+ command : npm run build:examples
115
93
- persist_to_workspace :
116
94
root : *workspace_root
117
95
paths :
@@ -121,19 +99,18 @@ jobs:
121
99
<< : *container_config_node
122
100
steps :
123
101
- *attach_workspace
124
- - browser-tools/install-chrome
102
+ - run :
103
+ name : Install Chrome
104
+ command : npx puppeteer browsers install chrome
125
105
- run :
126
106
name : Check code style
127
107
command : npm run prettier -- --list-different
128
108
- run :
129
109
name : Run package tests
130
- command : npm run test:ci -- --runInBand
110
+ command : npm run test:ci
131
111
- run :
132
112
name : Run example app integration tests
133
- command : npm run test:examples
134
- - run :
135
- name : Run storybook
136
- command : npm run storybook:ci
113
+ command : npm run test:examples-ci
137
114
138
115
publish :
139
116
<< : *container_config_node
@@ -165,56 +142,26 @@ jobs:
165
142
name : NPM publish
166
143
command : npm publish --workspace=packages/ --access=public --tag=pre-release
167
144
168
- deploy :
169
- << : *container_config_node
170
- steps :
171
- - *attach_workspace
172
- - run :
173
- name : Deploy Storybook
174
- command : npm run deploy-storybook:ci
175
-
176
145
workflows :
177
-
178
146
version : 2
179
147
180
148
build-test :
181
149
jobs :
182
- - build :
183
- filters :
184
- << : *filters_ignore_tags_renovate_nori_build
185
- name : build-<< matrix.executor >>
186
- matrix :
187
- parameters :
188
- executor :
189
- - node
190
- - node20
191
- - node18
192
- - test :
150
+ - checkout
151
+ - setup :
152
+ name : setup-<< matrix.executor >>
193
153
requires :
194
- - build-<< matrix.executor >>
195
- name : test-<< matrix.executor >>
154
+ - checkout
196
155
matrix :
197
156
parameters :
198
157
executor :
199
158
- node
200
159
- node20
201
160
- node18
202
- - deploy :
203
- filters :
204
- << : *filters_only_main
205
- requires :
206
- - test-node
207
-
208
- renovate-nori-build-test :
209
- jobs :
210
- - waiting-for-approval :
211
- type : approval
212
- filters :
213
- << : *filters_only_renovate_nori
214
161
- build :
215
- requires :
216
- - waiting-for-approval
217
162
name : build-<< matrix.executor >>
163
+ requires :
164
+ - setup-<< matrix.executor >>
218
165
matrix :
219
166
parameters :
220
167
executor :
@@ -234,10 +181,27 @@ workflows:
234
181
235
182
build-test-publish :
236
183
jobs :
184
+ - checkout :
185
+ filters :
186
+ << : *filters_release_build
187
+ - setup :
188
+ filters :
189
+ << : *filters_release_build
190
+ name : setup-<< matrix.executor >>
191
+ requires :
192
+ - checkout
193
+ matrix :
194
+ parameters :
195
+ executor :
196
+ - node
197
+ - node20
198
+ - node18
237
199
- build :
238
200
filters :
239
201
<< : *filters_release_build
240
202
name : build-<< matrix.executor >>
203
+ requires :
204
+ - setup-<< matrix.executor >>
241
205
matrix :
242
206
parameters :
243
207
executor :
@@ -265,10 +229,27 @@ workflows:
265
229
266
230
build-test-prepublish :
267
231
jobs :
232
+ - checkout :
233
+ filters :
234
+ << : *filters_prerelease_build
235
+ - setup :
236
+ filters :
237
+ << : *filters_prerelease_build
238
+ name : setup-<< matrix.executor >>
239
+ requires :
240
+ - checkout
241
+ matrix :
242
+ parameters :
243
+ executor :
244
+ - node
245
+ - node20
246
+ - node18
268
247
- build :
269
248
filters :
270
249
<< : *filters_prerelease_build
271
250
name : build-<< matrix.executor >>
251
+ requires :
252
+ - setup-<< matrix.executor >>
272
253
matrix :
273
254
parameters :
274
255
executor :
0 commit comments