3
3
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
4
4
#
5
5
version : 2.1
6
- jobs :
7
- setup :
6
+ executors :
7
+ node :
8
8
docker : &docker
9
- # specify the version you desire here
10
9
- image : cimg/node:22.12
10
+ environment :
11
+ # the whole CI is reset each time anyway, so only track local cache
12
+ YARN_ENABLE_GLOBAL_CACHE : false
13
+ YARN_ENABLE_MIRROR : false
14
+
15
+ # Don't waste io
16
+ YARN_ENABLE_PROGRESS_BARS : false
17
+ YARN_ENABLE_INLINE_BUILDS : true
18
+ # Don't revalidate
19
+ YARN_ENABLE_SCRIPTS : false
20
+ # Keep install cache
21
+ YARN_ENABLE_IMMUTABLE_INSTALLS : true
22
+
23
+ jobs :
24
+ setup :
25
+ executor : node
11
26
resource_class : large
12
27
steps :
13
28
- checkout :
@@ -18,44 +33,42 @@ jobs:
18
33
npm pkg set 'workspaces[]'='examples/*'
19
34
- restore_cache :
20
35
keys :
21
- - v12 -dependencies-{{ checksum "yarn.lock" }}-{{ checksum "examples/github-app/package.json" }}
36
+ - v13 -dependencies-{{ checksum "yarn.lock" }}-{{ checksum "examples/github-app/package.json" }}-{{ checksum "examples/todo -app/package.json" }}
22
37
# fallback to using the latest cache if no exact match is found
23
- - v12 -dependencies-
38
+ - v13 -dependencies-
24
39
- run :
25
40
name : yarn install
26
41
command : |
27
- sudo corepack enable
28
- YARN_ENABLE_GLOBAL_CACHE=false YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn workspace todo-app add @data-client/endpoint@workspace:^ @data-client/react@workspace:^ @data-client/rest@workspace:^
29
- YARN_ENABLE_GLOBAL_CACHE=false YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn workspace github-app add @data-client/graphql@workspace:^ @data-client/react@workspace:^ @data-client/rest@workspace:^
30
- YARN_ENABLE_GLOBAL_CACHE=false YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install
42
+ yarn up @data-client/endpoint@workspace:^ @data-client/react@workspace:^ @data-client/rest@workspace:^
31
43
- save_cache :
32
44
paths :
33
45
- .yarn/cache
34
46
- .yarn/install-state.gz
35
- key : v12 -dependencies-{{ checksum "yarn.lock" }}-{{ checksum "examples/github-app/package.json" }}
47
+ key : v13 -dependencies-{{ checksum "yarn.lock" }}-{{ checksum "examples/github-app/package.json" }}-{{ checksum "examples/todo -app/package.json" }}
36
48
- run : yarn run ci:build:types
37
49
- run : yarn run ci:build
38
50
- persist_to_workspace :
39
51
root : ~/
40
52
paths :
41
53
# explicitly list so we can ignore some directories that are not needed
42
- - project/packages
54
+ - project/.yarn
55
+ - project/__tests__
43
56
- project/examples
44
57
- project/node_modules
45
- - project/__tests__
58
+ - project/packages
46
59
- project/scripts
60
+ - project/.yarnrc.yml
47
61
- project/babel.config.js
62
+ - project/eslint.config.mjs
48
63
- project/jest.config.js
64
+ - project/package.json
49
65
- project/tsconfig-base.json
50
66
- project/tsconfig.json
51
- - project/eslint.config.mjs
52
- - project/yarn.lock
53
67
- project/tsconfig.test.json
54
- - project/package.json
55
- - project/.yarnrc.yml
56
- - project/.yarn
68
+ - project/yarn.lock
69
+
57
70
lint :
58
- docker : *docker
71
+ executor : node
59
72
resource_class : medium+
60
73
steps :
61
74
- attach_workspace :
65
78
yarn lint --quiet packages/*/src
66
79
67
80
typecheck :
68
- docker : *docker
81
+ executor : node
69
82
resource_class : small
70
83
steps :
71
84
- attach_workspace :
78
91
parameters :
79
92
react-version :
80
93
type : string
81
- docker : *docker
94
+ executor : node
82
95
resource_class : large
83
96
steps :
84
97
- attach_workspace :
@@ -87,15 +100,15 @@ jobs:
87
100
name : Installing React Version
88
101
command : |
89
102
if [ "<< parameters.react-version >>" == "^17.0.0" ]; then
90
- YARN_ENABLE_GLOBAL_CACHE=false yarn remove @react-navigation/native @react-navigation/native-stack react-native-screens
91
- YARN_ENABLE_GLOBAL_CACHE=false yarn workspace @data-client/react remove @react-navigation/native
92
- YARN_ENABLE_GLOBAL_CACHE=false yarn add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >> @testing-library/react@^12.0.0 @testing-library/react-hooks @react-navigation/native@^6.0.0 @react-navigation/native-stack@^6.0.0 react-native-screens@^3.0.0
93
- YARN_ENABLE_GLOBAL_CACHE=false yarn workspaces foreach -W --include @data-client/img --include @data-client/react --include @data-client/ssr --include @data-client/test --include @data-client/use-enhanced-reducer add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >>
94
- YARN_ENABLE_GLOBAL_CACHE=false yarn workspace @data-client/react add @react-navigation/native@^6.0.0
95
- YARN_ENABLE_GLOBAL_CACHE=false yarn workspace @data-client/test add @testing-library/react@^12.0.0
103
+ yarn remove @react-navigation/native @react-navigation/native-stack react-native-screens
104
+ yarn workspace @data-client/react remove @react-navigation/native
105
+ yarn add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >> @testing-library/react@^12.0.0 @testing-library/react-hooks @react-navigation/native@^6.0.0 @react-navigation/native-stack@^6.0.0 react-native-screens@^3.0.0
106
+ yarn workspaces foreach -W --include @data-client/img --include @data-client/react --include @data-client/ssr --include @data-client/test --include @data-client/use-enhanced-reducer add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >>
107
+ yarn workspace @data-client/react add @react-navigation/native@^6.0.0
108
+ yarn workspace @data-client/test add @testing-library/react@^12.0.0
96
109
elif [ "<< parameters.react-version >>" == "^18" ]; then
97
- YARN_ENABLE_GLOBAL_CACHE=false yarn add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >>
98
- YARN_ENABLE_GLOBAL_CACHE=false yarn workspaces foreach -W --include @data-client/img --include @data-client/react --include @data-client/ssr --include @data-client/test --include @data-client/use-enhanced-reducer add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >>
110
+ yarn add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >>
111
+ yarn workspaces foreach -W --include @data-client/img --include @data-client/react --include @data-client/ssr --include @data-client/test --include @data-client/use-enhanced-reducer add --dev react@<< parameters.react-version >> react-dom@<< parameters.react-version >> react-test-renderer@<< parameters.react-version >>
99
112
fi
100
113
- run :
101
114
name : Running Jest
@@ -133,7 +146,7 @@ jobs:
133
146
ANANSI_JEST_TYPECHECK=false npm test --ci --maxWorkers=2 --selectProjects Node
134
147
135
148
non-app-examples :
136
- docker : *docker
149
+ executor : node
137
150
resource_class : small
138
151
steps :
139
152
- attach_workspace :
@@ -147,24 +160,25 @@ jobs:
147
160
parameters :
148
161
typescript-version :
149
162
type : string
150
- docker : *docker
163
+ executor : node
151
164
steps :
152
165
- attach_workspace :
153
166
at : ~/
154
167
- run :
168
+ name : Install TypeScript Version
155
169
command : |
156
170
if [ "<< parameters.typescript-version >>" != "latest" ]; then
157
- YARN_ENABLE_GLOBAL_CACHE=false yarn add --dev typescript@~<< parameters.typescript-version >>
171
+ yarn add --dev typescript@~<< parameters.typescript-version >>
158
172
fi
159
173
if [[ "<< parameters.typescript-version >>" == "4.0" || \
160
174
"<< parameters.typescript-version >>" == "4.1" || \
161
175
"<< parameters.typescript-version >>" == "4.3" ]]; then
162
176
sed -i '/"@types\/react":/d' package.json
163
177
sed -i '/"@types\/react-dom":/d' package.json
164
- YARN_ENABLE_GLOBAL_CACHE=false yarn workspaces foreach -Rt --from github-app --from todo-app add -DE @types/react@ts<< parameters.typescript-version >>
178
+ yarn workspaces foreach -Rt --from github-app --from todo-app add -DE @types/react@ts<< parameters.typescript-version >>
165
179
fi
166
180
- run :
167
- name : typecheck
181
+ name : Run Typecheck
168
182
command : |
169
183
if [ "<< parameters.typescript-version >>" == "latest" ] || [ "<< parameters.typescript-version >>" == "5.3" ] || [ "<< parameters.typescript-version >>" == "4.8" ]; then
170
184
yarn run tsc --project examples/todo-app/tsconfig.json
@@ -177,12 +191,12 @@ jobs:
177
191
fi
178
192
179
193
esmodule-loosenulltypes :
180
- docker : *docker
194
+ executor : node
181
195
steps :
182
196
- attach_workspace :
183
197
at : ~/
184
198
- run :
185
- name : typecheck
199
+ name : Run Typecheck
186
200
command : |
187
201
yarn run tsc --project examples/todo-app/tsconfig.json --strictNullChecks false
188
202
yarn run tsc --project examples/github-app/tsconfig.json --strictNullChecks false
@@ -191,19 +205,19 @@ jobs:
191
205
yarn run tsc --project examples/todo-app/tsconfig.typetest41.json --strictNullChecks false
192
206
193
207
esmodule-exactOptionalPropertyTypes :
194
- docker : *docker
208
+ executor : node
195
209
steps :
196
210
- attach_workspace :
197
211
at : ~/
198
212
- run :
199
- name : typecheck
213
+ name : Run Typecheck
200
214
command : |
201
215
yarn run tsc --project examples/todo-app/tsconfig.typetest.json --exactOptionalPropertyTypes true
202
216
yarn run tsc --project examples/github-app/tsconfig.typetest.json --exactOptionalPropertyTypes true
203
217
yarn run tsc --project examples/todo-app/tsconfig.typetest41.json --exactOptionalPropertyTypes true
204
218
205
219
validate-esmodule-browser-build :
206
- docker : *docker
220
+ executor : node
207
221
steps :
208
222
- attach_workspace :
209
223
at : ~/
0 commit comments