33# Check https://circleci.com/docs/2.0/language-javascript/ for more details
44#
55version : 2.1
6- jobs :
7- setup :
6+ executors :
7+ node :
88 docker : &docker
9- # specify the version you desire here
109 - 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
1126 resource_class : large
1227 steps :
1328 - checkout :
@@ -18,44 +33,42 @@ jobs:
1833 npm pkg set 'workspaces[]'='examples/*'
1934 - restore_cache :
2035 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" }}
2237 # fallback to using the latest cache if no exact match is found
23- - v12 -dependencies-
38+ - v13 -dependencies-
2439 - run :
2540 name : yarn install
2641 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:^
3143 - save_cache :
3244 paths :
3345 - .yarn/cache
3446 - .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" }}
3648 - run : yarn run ci:build:types
3749 - run : yarn run ci:build
3850 - persist_to_workspace :
3951 root : ~/
4052 paths :
4153 # explicitly list so we can ignore some directories that are not needed
42- - project/packages
54+ - project/.yarn
55+ - project/__tests__
4356 - project/examples
4457 - project/node_modules
45- - project/__tests__
58+ - project/packages
4659 - project/scripts
60+ - project/.yarnrc.yml
4761 - project/babel.config.js
62+ - project/eslint.config.mjs
4863 - project/jest.config.js
64+ - project/package.json
4965 - project/tsconfig-base.json
5066 - project/tsconfig.json
51- - project/eslint.config.mjs
52- - project/yarn.lock
5367 - project/tsconfig.test.json
54- - project/package.json
55- - project/.yarnrc.yml
56- - project/.yarn
68+ - project/yarn.lock
69+
5770 lint :
58- docker : *docker
71+ executor : node
5972 resource_class : medium+
6073 steps :
6174 - attach_workspace :
6578 yarn lint --quiet packages/*/src
6679
6780 typecheck :
68- docker : *docker
81+ executor : node
6982 resource_class : small
7083 steps :
7184 - attach_workspace :
7891 parameters :
7992 react-version :
8093 type : string
81- docker : *docker
94+ executor : node
8295 resource_class : large
8396 steps :
8497 - attach_workspace :
@@ -87,15 +100,15 @@ jobs:
87100 name : Installing React Version
88101 command : |
89102 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
96109 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 >>
99112 fi
100113 - run :
101114 name : Running Jest
@@ -133,7 +146,7 @@ jobs:
133146 ANANSI_JEST_TYPECHECK=false npm test --ci --maxWorkers=2 --selectProjects Node
134147
135148 non-app-examples :
136- docker : *docker
149+ executor : node
137150 resource_class : small
138151 steps :
139152 - attach_workspace :
@@ -147,24 +160,25 @@ jobs:
147160 parameters :
148161 typescript-version :
149162 type : string
150- docker : *docker
163+ executor : node
151164 steps :
152165 - attach_workspace :
153166 at : ~/
154167 - run :
168+ name : Install TypeScript Version
155169 command : |
156170 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 >>
158172 fi
159173 if [[ "<< parameters.typescript-version >>" == "4.0" || \
160174 "<< parameters.typescript-version >>" == "4.1" || \
161175 "<< parameters.typescript-version >>" == "4.3" ]]; then
162176 sed -i '/"@types\/react":/d' package.json
163177 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 >>
165179 fi
166180 - run :
167- name : typecheck
181+ name : Run Typecheck
168182 command : |
169183 if [ "<< parameters.typescript-version >>" == "latest" ] || [ "<< parameters.typescript-version >>" == "5.3" ] || [ "<< parameters.typescript-version >>" == "4.8" ]; then
170184 yarn run tsc --project examples/todo-app/tsconfig.json
@@ -177,12 +191,12 @@ jobs:
177191 fi
178192
179193 esmodule-loosenulltypes :
180- docker : *docker
194+ executor : node
181195 steps :
182196 - attach_workspace :
183197 at : ~/
184198 - run :
185- name : typecheck
199+ name : Run Typecheck
186200 command : |
187201 yarn run tsc --project examples/todo-app/tsconfig.json --strictNullChecks false
188202 yarn run tsc --project examples/github-app/tsconfig.json --strictNullChecks false
@@ -191,19 +205,19 @@ jobs:
191205 yarn run tsc --project examples/todo-app/tsconfig.typetest41.json --strictNullChecks false
192206
193207 esmodule-exactOptionalPropertyTypes :
194- docker : *docker
208+ executor : node
195209 steps :
196210 - attach_workspace :
197211 at : ~/
198212 - run :
199- name : typecheck
213+ name : Run Typecheck
200214 command : |
201215 yarn run tsc --project examples/todo-app/tsconfig.typetest.json --exactOptionalPropertyTypes true
202216 yarn run tsc --project examples/github-app/tsconfig.typetest.json --exactOptionalPropertyTypes true
203217 yarn run tsc --project examples/todo-app/tsconfig.typetest41.json --exactOptionalPropertyTypes true
204218
205219 validate-esmodule-browser-build :
206- docker : *docker
220+ executor : node
207221 steps :
208222 - attach_workspace :
209223 at : ~/
0 commit comments