11version : 2.1
22orbs :
33 aws-ecr :
circleci/[email protected] 4+ android :
circleci/[email protected] 5+ 46machine :
57 environment :
68 PATH : ' ${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin'
79executors :
810 w : &windows-e2e-executor
911 machine :
10- image : " windows-server-2019-vs2019:stable"
11- resource_class : " windows.medium"
12+ image : ' windows-server-2019-vs2019:stable'
13+ resource_class : ' windows.medium'
1214 shell : bash.exe
1315 working_directory : ~/repo
1416 environment :
@@ -24,11 +26,30 @@ executors:
2426 AMPLIFY_DIR : /home/circleci/repo/out
2527 AMPLIFY_PATH : /home/circleci/repo/out/amplify-pkg-linux-x64
2628
29+ m : &macos-e2e-executor
30+ macos :
31+ xcode : 14.1.0
32+ working_directory : ~/repo
33+ resource_class : large
34+ environment :
35+ CXXFLAGS : ' --std=c++17'
36+ AMPLIFY_DIR : /home/circleci/repo/out
37+ AMPLIFY_PATH : /home/circleci/repo/out/amplify-pkg-linux-x64
38+
39+ a : &android-e2e-executor
40+ docker :
41+ - image : cimg/android:2022.09
42+ working_directory : ~/repo
43+ resource_class : large
44+ environment :
45+ AMPLIFY_DIR : /home/circleci/repo/out
46+ AMPLIFY_PATH : /home/circleci/repo/out/amplify-pkg-linux-x64
47+
2748defaults : &defaults
2849 working_directory : ~/repo
2950 parameters :
30- os :
31- type : executor
51+ os :
52+ type : executor
3253
3354install_cli_with_local_codegen : &install_cli
3455 name : install Amplify CLI and amplify-app with local Amplify Codegen
@@ -42,7 +63,7 @@ install_cli_with_local_codegen: &install_cli
4263 npm list --global --depth=1
4364 unsetNpmRegistryUrl
4465 working_directory : ~/repo
45-
66+
4667clean_up_e2e_resources : &cleanup_e2e
4768 name : Clean up e2e resources
4869 command : |
@@ -61,11 +82,11 @@ jobs:
6182 - run : yarn cache clean --force
6283 - run : yarn run production-build
6384 - save_cache :
64- key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}
85+ key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}-<< parameters.os >>
6586 paths :
6687 - ~/.cache
6788 - save_cache :
68- key : amplify-codegen-ssh-deps-{{ .Branch }}
89+ key : amplify-codegen-ssh-deps-{{ .Branch }}-<< parameters.os >>
6990 paths :
7091 - ~/.ssh
7192 - persist_to_workspace :
79100 - when :
80101 condition :
81102 or :
82- - equal : [ *windows-e2e-executor, << parameters.os >> ]
103+ - equal : [*windows-e2e-executor, << parameters.os >>]
83104 steps :
84105 - checkout
85106 - run : nvm install 12.22.7
@@ -90,12 +111,12 @@ jobs:
90111 - when :
91112 condition :
92113 or :
93- - equal : [ *linux-e2e-executor, << parameters.os >> ]
114+ - equal : [*linux-e2e-executor, << parameters.os >>]
94115 steps :
95116 - attach_workspace :
96117 at : ./
97118 - restore_cache :
98- key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}
119+ key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}-l
99120 - run :
100121 name : Lint
101122 command : yarn lint
@@ -114,8 +135,8 @@ jobs:
114135 at : ./
115136 - restore_cache :
116137 keys :
117- - amplify-codegen-ssh-deps-{{ .Branch }}
118- - amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}
138+ - amplify-codegen-ssh-deps-{{ .Branch }}-l
139+ - amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}-l
119140 - run :
120141 name : Authenticate with npm
121142 command : echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
@@ -131,7 +152,7 @@ jobs:
131152 - attach_workspace :
132153 at : ./
133154 - restore_cache :
134- key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}
155+ key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}-<< parameters.os >>
135156 - run :
136157 name : Publish to verdaccio
137158 command : |
@@ -144,11 +165,55 @@ jobs:
144165 yarn publish-to-verdaccio
145166 unsetNpmRegistryUrl
146167 - save_cache :
147- key : amplify-verdaccio-cache-{{ .Branch }}-{{ .Revision }}
168+ key : amplify-verdaccio-cache-{{ .Branch }}-{{ .Revision }}-<< parameters.os >>
148169 paths :
149170 - ~/verdaccio-cache/
150171
151172 e2e-test :
173+ << : *defaults
174+ executor : << parameters.os >>
175+ steps :
176+ - attach_workspace :
177+ at : ./
178+ - restore_cache :
179+ key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}-<< parameters.os >>
180+ - restore_cache :
181+ key : amplify-verdaccio-cache-{{ .Branch }}-{{ .Revision }}-<< parameters.os >>
182+ - run : *install_cli
183+ - run :
184+ name : Run e2e tests
185+ command : |
186+ cd packages/amplify-codegen-e2e-tests
187+ yarn e2e --maxWorkers=3 $TEST_SUITE
188+ no_output_timeout : 20m
189+ - store_test_results :
190+ path : packages/amplify-codegen-e2e-tests/
191+ - store_artifacts :
192+ path : ~/repo/packages/amplify-codegen-e2e-tests/amplify-e2e-reports
193+
194+ e2e-test-macos :
195+ << : *defaults
196+ executor : << parameters.os >>
197+ steps :
198+ - attach_workspace :
199+ at : ./
200+ - restore_cache :
201+ key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}-<< parameters.os >>
202+ - restore_cache :
203+ key : amplify-verdaccio-cache-{{ .Branch }}-{{ .Revision }}-<< parameters.os >>
204+ - run : *install_cli
205+ - run :
206+ name : Run e2e tests
207+ command : |
208+ cd packages/amplify-codegen-e2e-tests
209+ yarn e2e --maxWorkers=3 $TEST_SUITE
210+ no_output_timeout : 20m
211+ - store_test_results :
212+ path : packages/amplify-codegen-e2e-tests/
213+ - store_artifacts :
214+ path : ~/repo/packages/amplify-codegen-e2e-tests/amplify-e2e-reports
215+
216+ e2e-test-with-node-install :
152217 << : *defaults
153218 executor : << parameters.os >>
154219 steps :
@@ -158,6 +223,10 @@ jobs:
158223 key : amplify-codegen-yarn-deps-{{ .Branch }}-{{ checksum "yarn.lock" }}
159224 - restore_cache :
160225 key : amplify-verdaccio-cache-{{ .Branch }}-{{ .Revision }}
226+ - node/install :
227+ install-yarn : true
228+ node-version : ' 16.13'
229+ - run : yarn run production-build
161230 - run : *install_cli
162231 - run :
163232 name : Run e2e tests
@@ -175,7 +244,7 @@ jobs:
175244 executor : << parameters.os >>
176245 steps :
177246 - run : echo 'Done with Node CLI E2E Tests'
178-
247+
179248 cleanup_resources :
180249 << : *defaults
181250 executor : << parameters.os >>
@@ -218,18 +287,24 @@ workflows:
218287 build_test_deploy :
219288 jobs :
220289 - build :
221- os : l
290+ name : build-<< matrix.os >>
291+ matrix :
292+ parameters :
293+ os : [l, m]
222294 - test :
223295 name : test-<< matrix.os >>
224296 matrix :
225297 parameters :
226298 os : [l, w]
227299 requires :
228- - build
300+ - build-l
229301 - publish_to_local_registry :
230- os : l
302+ name : publish_to_local_registry-<< matrix.os >>
303+ matrix :
304+ parameters :
305+ os : [l, m]
231306 requires :
232- - build
307+ - build-<< matrix.os >>
233308 filters :
234309 branches :
235310 only :
@@ -241,7 +316,7 @@ workflows:
241316 - cleanup-resources
242317 os : l
243318 requires :
244- - publish_to_local_registry
319+ - publish_to_local_registry-l
245320 post-steps :
246321 - run : *cleanup_e2e
247322 filters :
@@ -266,4 +341,4 @@ workflows:
266341 - done_with_node_e2e_tests :
267342 os : l
268343 requires :
269- - e2e-test
344+ - e2e-test
0 commit comments