@@ -346,6 +346,63 @@ jobs:
346346 - run : node ./scripts/circleci/setup-angular-snapshots.js
347347 - run : ./scripts/circleci/run-local-browser-tests.sh
348348
349+
350+ # ----------------------------------------------------------------------------
351+ # Job that runs all Bazel tests against Ivy with the current Angular version
352+ # specified in the project dev dependencies.
353+ # ----------------------------------------------------------------------------
354+ ivy_test :
355+ << : *job_defaults
356+ resource_class : xlarge
357+ environment :
358+ GCP_DECRYPT_TOKEN : *gcp_decrypt_token
359+ steps :
360+ - *checkout_code
361+ - *restore_cache
362+ - *copy_bazel_config
363+ - *setup_bazel_remote_execution
364+ - *yarn_install
365+
366+ # Setup Angular ivy snapshots built with ngtsc but locked to a specific tag. We
367+ # cannot determine the tag automatically based on the Angular version specified in
368+ # the "package.json" because the SHA is not known for the given release. Nor can
369+ # we use ngcc to apply the ivy switches because ngcc currently does not handle the
370+ # UMD format which is used by Bazel when running tests. UMD processing is in
371+ # progress and tracked with FW-85.
372+ - run : node ./scripts/circleci/setup-angular-snapshots.js --tag 8.0.0-rc.0-ivy-aot+bd37622
373+ # Disable type checking when building with Ivy. This is necessary because
374+ # type checking is not complete yet and can incorrectly break compilation.
375+ # Issue is tracked with FW-1004.
376+ - run : sed -i "s/\(_ENABLE_NG_TYPE_CHECKING = \)True/\1False/g" tools/defaults.bzl
377+ # Run project tests with ngtsc and the Ivy Angular packages.
378+ - run : bazel build src/... --build_tag_filters=-docs-package --define=compile=aot
379+ - run : bazel test src/... --build_tag_filters=-docs-package --define=compile=aot
380+
381+ # ----------------------------------------------------------------------------
382+ # Job that runs all Bazel tests against Ivy from angular/angular#master.
383+ # ----------------------------------------------------------------------------
384+ ivy_snapshot_test_cronjob :
385+ << : *job_defaults
386+ resource_class : xlarge
387+ environment :
388+ GCP_DECRYPT_TOKEN : *gcp_decrypt_token
389+ steps :
390+ - *checkout_code
391+ - *restore_cache
392+ - *copy_bazel_config
393+ - *setup_bazel_remote_execution
394+ - *yarn_install
395+
396+ # Setup Angular ivy snapshots built with ngtsc.
397+ - run : node ./scripts/circleci/setup-angular-snapshots.js --tag master-ivy-aot
398+ # Disable type checking when building with Ivy. This is necessary because
399+ # type checking is not complete yet and can incorrectly break compilation.
400+ # Issue is tracked with FW-1004.
401+ - run : sed -i "s/\(_ENABLE_NG_TYPE_CHECKING = \)True/\1False/g" tools/defaults.bzl
402+ # Run project tests with ngtsc and the Ivy Angular packages.
403+ - run : bazel build src/... --build_tag_filters=-docs-package --define=compile=aot
404+ - run : bazel test src/... --build_tag_filters=-docs-package --define=compile=aot
405+
349406# ----------------------------------------------------------------------------------------
350407# Workflow definitions. A workflow usually groups multiple jobs together. This is useful if
351408# one job depends on another.
@@ -360,6 +417,8 @@ workflows:
360417 jobs :
361418 - bazel_build_test :
362419 filters : *ignore_presubmit_branch_filter
420+ - ivy_test :
421+ filters : *ignore_presubmit_branch_filter
363422 - api_golden_checks :
364423 filters : *ignore_presubmit_branch_filter
365424
@@ -398,17 +457,18 @@ workflows:
398457 - lint :
399458 filters : *ignore_presubmit_branch_filter
400459
401- # Snapshot tests workflow that is scheduled to run all specified jobs at midnight everyday .
460+ # Snapshot tests workflow that is scheduled to run all specified jobs every hour .
402461 # This workflow runs various jobs against the Angular snapshot builds from Github.
403462 snapshot_tests :
404463 jobs :
405- # Note that we need additional jobs for the nightly snapshot tests because there is no
406- # easy way to detect whether a job runs inside of a cronjob or specific workflow.
407- # See: https://circleci.com/ideas/?idea=CCI-I-295
464+ # Note that we need additional jobs for the cronjob snapshot tests because there
465+ # is no easy way to detect whether a job runs inside of a cronjob or specific
466+ # workflow. See: https://circleci.com/ideas/?idea=CCI-I-295
408467 - snapshot_tests_local_browsers
468+ - ivy_snapshot_test_cronjob
409469 triggers :
410470 - schedule :
411- cron : " 0 0 * * *"
471+ cron : " 0 * * * *"
412472 filters :
413473 branches :
414474 only :
0 commit comments