Skip to content

Commit ab991c3

Browse files
authored
feat(amplify-codegen): new codegen command of model intropection (#476)
* feat(amplify-codegen): new codegen command of model intropection * add command unit test * add model introspection e2e tests
1 parent cf712a6 commit ab991c3

File tree

22 files changed

+2826
-48
lines changed

22 files changed

+2826
-48
lines changed

.circleci/config.yml

Lines changed: 56 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -241,134 +241,142 @@ jobs:
241241
environment:
242242
TEST_SUITE: src/__tests__/add-codegen-js.test.ts
243243
CLI_REGION: ap-southeast-1
244+
model-introspection-codegen-e2e-test:
245+
working_directory: ~/repo
246+
parameters: *ref_0
247+
executor: << parameters.os >>
248+
steps: *ref_4
249+
environment:
250+
TEST_SUITE: src/__tests__/model-introspection-codegen.test.ts
251+
CLI_REGION: ap-southeast-2
244252
add-codegen-ios-e2e-test:
245253
working_directory: ~/repo
246254
parameters: *ref_0
247255
executor: << parameters.os >>
248256
steps: *ref_4
249257
environment:
250258
TEST_SUITE: src/__tests__/add-codegen-ios.test.ts
251-
CLI_REGION: ap-southeast-2
259+
CLI_REGION: us-east-2
252260
add-codegen-android-e2e-test:
253261
working_directory: ~/repo
254262
parameters: *ref_0
255263
executor: << parameters.os >>
256264
steps: *ref_4
257265
environment:
258266
TEST_SUITE: src/__tests__/add-codegen-android.test.ts
259-
CLI_REGION: us-east-2
267+
CLI_REGION: us-west-1
260268
datastore-modelgen-flutter-e2e-test:
261269
working_directory: ~/repo
262270
parameters: *ref_0
263271
executor: << parameters.os >>
264272
steps: *ref_4
265273
environment:
266274
TEST_SUITE: src/__tests__/datastore-modelgen-flutter.test.ts
267-
CLI_REGION: us-west-1
275+
CLI_REGION: eu-west-2
268276
datastore-modelgen-ios-e2e-test:
269277
working_directory: ~/repo
270278
parameters: *ref_0
271279
executor: << parameters.os >>
272280
steps: *ref_4
273281
environment:
274282
TEST_SUITE: src/__tests__/datastore-modelgen-ios.test.ts
275-
CLI_REGION: eu-west-2
283+
CLI_REGION: eu-central-1
276284
datastore-modelgen-android-e2e-test:
277285
working_directory: ~/repo
278286
parameters: *ref_0
279287
executor: << parameters.os >>
280288
steps: *ref_4
281289
environment:
282290
TEST_SUITE: src/__tests__/datastore-modelgen-android.test.ts
283-
CLI_REGION: eu-central-1
291+
CLI_REGION: ap-northeast-1
284292
datastore-modelgen-js-e2e-test:
285293
working_directory: ~/repo
286294
parameters: *ref_0
287295
executor: << parameters.os >>
288296
steps: *ref_4
289297
environment:
290298
TEST_SUITE: src/__tests__/datastore-modelgen-js.test.ts
291-
CLI_REGION: ap-northeast-1
299+
CLI_REGION: ap-southeast-1
292300
remove-codegen-android-e2e-test:
293301
working_directory: ~/repo
294302
parameters: *ref_0
295303
executor: << parameters.os >>
296304
steps: *ref_4
297305
environment:
298306
TEST_SUITE: src/__tests__/remove-codegen-android.test.ts
299-
CLI_REGION: ap-southeast-1
307+
CLI_REGION: ap-southeast-2
300308
remove-codegen-ios-e2e-test:
301309
working_directory: ~/repo
302310
parameters: *ref_0
303311
executor: << parameters.os >>
304312
steps: *ref_4
305313
environment:
306314
TEST_SUITE: src/__tests__/remove-codegen-ios.test.ts
307-
CLI_REGION: ap-southeast-2
315+
CLI_REGION: us-east-2
308316
remove-codegen-js-e2e-test:
309317
working_directory: ~/repo
310318
parameters: *ref_0
311319
executor: << parameters.os >>
312320
steps: *ref_4
313321
environment:
314322
TEST_SUITE: src/__tests__/remove-codegen-js.test.ts
315-
CLI_REGION: us-east-2
323+
CLI_REGION: us-west-1
316324
feature-flags-e2e-test:
317325
working_directory: ~/repo
318326
parameters: *ref_0
319327
executor: << parameters.os >>
320328
steps: *ref_4
321329
environment:
322330
TEST_SUITE: src/__tests__/feature-flags.test.ts
323-
CLI_REGION: us-west-1
331+
CLI_REGION: eu-west-2
324332
configure-codegen-ios-e2e-test:
325333
working_directory: ~/repo
326334
parameters: *ref_0
327335
executor: << parameters.os >>
328336
steps: *ref_4
329337
environment:
330338
TEST_SUITE: src/__tests__/configure-codegen-ios.test.ts
331-
CLI_REGION: eu-west-2
339+
CLI_REGION: eu-central-1
332340
configure-codegen-android-e2e-test:
333341
working_directory: ~/repo
334342
parameters: *ref_0
335343
executor: << parameters.os >>
336344
steps: *ref_4
337345
environment:
338346
TEST_SUITE: src/__tests__/configure-codegen-android.test.ts
339-
CLI_REGION: eu-central-1
347+
CLI_REGION: ap-northeast-1
340348
configure-codegen-js-e2e-test:
341349
working_directory: ~/repo
342350
parameters: *ref_0
343351
executor: << parameters.os >>
344352
steps: *ref_4
345353
environment:
346354
TEST_SUITE: src/__tests__/configure-codegen-js.test.ts
347-
CLI_REGION: ap-northeast-1
355+
CLI_REGION: ap-southeast-1
348356
graphql-codegen-android-e2e-test:
349357
working_directory: ~/repo
350358
parameters: *ref_0
351359
executor: << parameters.os >>
352360
steps: *ref_4
353361
environment:
354362
TEST_SUITE: src/__tests__/graphql-codegen-android.test.ts
355-
CLI_REGION: ap-southeast-1
363+
CLI_REGION: ap-southeast-2
356364
graphql-codegen-js-e2e-test:
357365
working_directory: ~/repo
358366
parameters: *ref_0
359367
executor: << parameters.os >>
360368
steps: *ref_4
361369
environment:
362370
TEST_SUITE: src/__tests__/graphql-codegen-js.test.ts
363-
CLI_REGION: ap-southeast-2
371+
CLI_REGION: us-east-2
364372
graphql-codegen-ios-e2e-test:
365373
working_directory: ~/repo
366374
parameters: *ref_0
367375
executor: << parameters.os >>
368376
steps: *ref_4
369377
environment:
370378
TEST_SUITE: src/__tests__/graphql-codegen-ios.test.ts
371-
CLI_REGION: us-east-2
379+
CLI_REGION: us-west-1
372380
workflows:
373381
version: 2
374382
e2e_resource_cleanup:
@@ -429,27 +437,28 @@ workflows:
429437
os: l
430438
requires:
431439
- push-codegen-ios-e2e-test
440+
- add-codegen-ios-e2e-test
441+
- remove-codegen-ios-e2e-test
442+
- graphql-codegen-js-e2e-test
443+
- push-codegen-android-e2e-test
432444
- add-codegen-android-e2e-test
433445
- remove-codegen-js-e2e-test
434446
- graphql-codegen-ios-e2e-test
435-
- push-codegen-android-e2e-test
447+
- push-codegen-js-e2e-test
436448
- datastore-modelgen-flutter-e2e-test
437449
- feature-flags-e2e-test
438-
- push-codegen-js-e2e-test
450+
- pull-codegen-e2e-test
439451
- datastore-modelgen-ios-e2e-test
440452
- configure-codegen-ios-e2e-test
441-
- pull-codegen-e2e-test
453+
- env-codegen-e2e-test
442454
- datastore-modelgen-android-e2e-test
443455
- configure-codegen-android-e2e-test
444-
- env-codegen-e2e-test
456+
- add-codegen-js-e2e-test
445457
- datastore-modelgen-js-e2e-test
446458
- configure-codegen-js-e2e-test
447-
- add-codegen-js-e2e-test
459+
- model-introspection-codegen-e2e-test
448460
- remove-codegen-android-e2e-test
449461
- graphql-codegen-android-e2e-test
450-
- add-codegen-ios-e2e-test
451-
- remove-codegen-ios-e2e-test
452-
- graphql-codegen-js-e2e-test
453462
- push-codegen-ios-e2e-test:
454463
context: &ref_6
455464
- cleanup-resources
@@ -464,21 +473,21 @@ workflows:
464473
- main
465474
- e2e-testing
466475
- /tagged-release\/.*/
467-
- add-codegen-android-e2e-test:
476+
- add-codegen-ios-e2e-test:
468477
context: *ref_6
469478
os: l
470479
requires:
471480
- publish_to_local_registry
472481
post-steps: *ref_7
473482
filters: *ref_8
474-
- remove-codegen-js-e2e-test:
483+
- remove-codegen-ios-e2e-test:
475484
context: *ref_6
476485
os: l
477486
requires:
478487
- publish_to_local_registry
479488
post-steps: *ref_7
480489
filters: *ref_8
481-
- graphql-codegen-ios-e2e-test:
490+
- graphql-codegen-js-e2e-test:
482491
context: *ref_6
483492
os: l
484493
requires:
@@ -492,14 +501,21 @@ workflows:
492501
- publish_to_local_registry
493502
post-steps: *ref_7
494503
filters: *ref_8
495-
- datastore-modelgen-flutter-e2e-test:
504+
- add-codegen-android-e2e-test:
496505
context: *ref_6
497506
os: l
498507
requires:
499508
- publish_to_local_registry
500509
post-steps: *ref_7
501510
filters: *ref_8
502-
- feature-flags-e2e-test:
511+
- remove-codegen-js-e2e-test:
512+
context: *ref_6
513+
os: l
514+
requires:
515+
- publish_to_local_registry
516+
post-steps: *ref_7
517+
filters: *ref_8
518+
- graphql-codegen-ios-e2e-test:
503519
context: *ref_6
504520
os: l
505521
requires:
@@ -513,14 +529,14 @@ workflows:
513529
- publish_to_local_registry
514530
post-steps: *ref_7
515531
filters: *ref_8
516-
- datastore-modelgen-ios-e2e-test:
532+
- datastore-modelgen-flutter-e2e-test:
517533
context: *ref_6
518534
os: l
519535
requires:
520536
- publish_to_local_registry
521537
post-steps: *ref_7
522538
filters: *ref_8
523-
- configure-codegen-ios-e2e-test:
539+
- feature-flags-e2e-test:
524540
context: *ref_6
525541
os: l
526542
requires:
@@ -534,14 +550,14 @@ workflows:
534550
- publish_to_local_registry
535551
post-steps: *ref_7
536552
filters: *ref_8
537-
- datastore-modelgen-android-e2e-test:
553+
- datastore-modelgen-ios-e2e-test:
538554
context: *ref_6
539555
os: l
540556
requires:
541557
- publish_to_local_registry
542558
post-steps: *ref_7
543559
filters: *ref_8
544-
- configure-codegen-android-e2e-test:
560+
- configure-codegen-ios-e2e-test:
545561
context: *ref_6
546562
os: l
547563
requires:
@@ -555,14 +571,14 @@ workflows:
555571
- publish_to_local_registry
556572
post-steps: *ref_7
557573
filters: *ref_8
558-
- datastore-modelgen-js-e2e-test:
574+
- datastore-modelgen-android-e2e-test:
559575
context: *ref_6
560576
os: l
561577
requires:
562578
- publish_to_local_registry
563579
post-steps: *ref_7
564580
filters: *ref_8
565-
- configure-codegen-js-e2e-test:
581+
- configure-codegen-android-e2e-test:
566582
context: *ref_6
567583
os: l
568584
requires:
@@ -576,35 +592,35 @@ workflows:
576592
- publish_to_local_registry
577593
post-steps: *ref_7
578594
filters: *ref_8
579-
- remove-codegen-android-e2e-test:
595+
- datastore-modelgen-js-e2e-test:
580596
context: *ref_6
581597
os: l
582598
requires:
583599
- publish_to_local_registry
584600
post-steps: *ref_7
585601
filters: *ref_8
586-
- graphql-codegen-android-e2e-test:
602+
- configure-codegen-js-e2e-test:
587603
context: *ref_6
588604
os: l
589605
requires:
590606
- publish_to_local_registry
591607
post-steps: *ref_7
592608
filters: *ref_8
593-
- add-codegen-ios-e2e-test:
609+
- model-introspection-codegen-e2e-test:
594610
context: *ref_6
595611
os: l
596612
requires:
597613
- publish_to_local_registry
598614
post-steps: *ref_7
599615
filters: *ref_8
600-
- remove-codegen-ios-e2e-test:
616+
- remove-codegen-android-e2e-test:
601617
context: *ref_6
602618
os: l
603619
requires:
604620
- publish_to_local_registry
605621
post-steps: *ref_7
606622
filters: *ref_8
607-
- graphql-codegen-js-e2e-test:
623+
- graphql-codegen-android-e2e-test:
608624
context: *ref_6
609625
os: l
610626
requires:

packages/amplify-codegen-e2e-core/src/categories/codegen.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,16 @@ export function configureCodegen(cwd: string, settings: any = {}): Promise<void>
133133
});
134134
}
135135

136+
export function generateModelIntrospection(cwd: string, settings: { outputDir?: string} = {}): Promise<void> {
137+
return new Promise((resolve, reject) => {
138+
spawn(getCLIPath(), ['codegen', 'model-introspection', '--output-dir', settings.outputDir ?? ''], { cwd, stripColors: true })
139+
.run((err: Error) => {
140+
if (!err) {
141+
resolve();
142+
} else {
143+
reject(err);
144+
}
145+
});
146+
});
147+
}
148+

0 commit comments

Comments
 (0)