@@ -48,9 +48,7 @@ var_6: &only_pull_requests
4848 only :
4949 - /pull\/\d+/
5050
51- # All e2e test suites
5251var_7 : &all_e2e_subsets ['npm', 'esbuild', 'yarn']
53- var_8 : &all_e2e_build_types ['e2e', 'snapshot']
5452
5553# Executor Definitions
5654# https://circleci.com/docs/2.0/reusing-config/#authoring-reusable-executors
@@ -65,20 +63,10 @@ executors:
6563 working_directory : ~/ng
6664 resource_class : small
6765
68- bazel-executor :
69- parameters :
70- nodeversion :
71- type : string
72- default : *default_nodeversion
73- docker :
74- - image : cimg/node:<< parameters.nodeversion >>-browsers
75- working_directory : ~/ng
76- resource_class : xlarge
77-
7866 windows-executor :
7967 # Same as https://circleci.com/orbs/registry/orb/circleci/windows, but named.
8068 working_directory : ~/ng
81- resource_class : windows.large
69+ resource_class : windows.medium
8270 shell : powershell.exe -ExecutionPolicy Bypass
8371 machine :
8472 # Contents of this image:
@@ -128,7 +116,7 @@ commands:
128116 - initialize_env
129117 - run : nvm install 16.13
130118 - run : nvm use 16.13
131- -
run :
npm install -g [email protected] @bazel/bazelisk@${BAZELISK_VERSION} 119+ -
run :
npm install -g [email protected] 132120 - run : node --version
133121 - run : yarn --version
134122
@@ -138,7 +126,6 @@ commands:
138126 type : env_var_name
139127 default : CIRCLE_PROJECT_REPONAME
140128 steps :
141- - run : sudo cp .circleci/bazel.rc /etc/bazel.bazelrc
142129 - devinfra/setup-bazel-remote-exec :
143130 bazelrc : ./.bazelrc.user
144131
@@ -282,24 +269,23 @@ jobs:
282269 paths :
283270 - dist/_*.tgz
284271
285- bazel-build :
286- executor : bazel-executor
272+ build-bazel-e2e :
273+ executor : action-executor
274+ resource_class : medium
287275 steps :
288276 - custom_attach_workspace
289- - setup_bazel_rbe
290- - run :
291- name : Bazel Build Packages
292- command : yarn bazel build //...
293- - fail_fast
277+ - run : yarn bazel build //tests/legacy-cli/...
294278
295- bazel-test :
296- executor : bazel-executor
279+ unit-test :
280+ executor : action-executor
281+ resource_class : xlarge
297282 parameters :
298283 nodeversion :
299284 type : string
300285 default : *default_nodeversion_major
301286 steps :
302287 - custom_attach_workspace
288+ - browser-tools/install-chrome
303289 - setup_bazel_rbe
304290 - run : sudo cp .circleci/bazel.rc /etc/bazel.bazelrc
305291 - when :
@@ -325,59 +311,6 @@ jobs:
325311 no_output_timeout : 40m
326312 - fail_fast
327313
328- bazel-e2e-tests :
329- executor : bazel-executor
330- parallelism : 8
331- parameters :
332- build_type :
333- type : enum
334- enum : *all_e2e_build_types
335- default : ' e2e'
336- subset :
337- type : enum
338- enum : *all_e2e_subsets
339- default : ' npm'
340- steps :
341- - custom_attach_workspace
342- - initialize_env
343- - setup_bazel_rbe
344- - run : mkdir /mnt/ramdisk/e2e
345- - run :
346- name : Test << parameters.build_type >> << parameters.subset >>
347- command : yarn bazel test --define=E2E_TEMP=/mnt/ramdisk/e2e --define=E2E_SHARD_TOTAL=${CIRCLE_NODE_TOTAL} --define=E2E_SHARD_INDEX=${CIRCLE_NODE_INDEX} --config=<< parameters.build_type >> //tests/legacy-cli:e2e.<< parameters.subset >>
348- no_output_timeout : 40m
349- - store_artifacts :
350- path : dist/testlogs/tests/legacy-cli/e2e.<< parameters.subset >>
351- - store_test_results :
352- path : dist/testlogs/tests/legacy-cli/e2e.<< parameters.subset >>
353- - fail_fast
354-
355- bazel-test-browsers :
356- executor : bazel-executor
357- steps :
358- - custom_attach_workspace
359- - initialize_env
360- - setup_bazel_rbe
361- - run :
362- name : Initialize Saucelabs
363- command : setSecretVar SAUCE_ACCESS_KEY $(echo $SAUCE_ACCESS_KEY | rev)
364- - run :
365- name : Start Saucelabs Tunnel
366- command : ./scripts/saucelabs/start-tunnel.sh
367- background : true
368- # Waits for the Saucelabs tunnel to be ready. This ensures that we don't run tests
369- # too early without Saucelabs not being ready.
370- - run : ./scripts/saucelabs/wait-for-tunnel.sh
371- - run :
372- name : E2E Saucelabs Tests
373- command : yarn bazel test --config=saucelabs //tests/legacy-cli:e2e.saucelabs
374- - run : ./scripts/saucelabs/stop-tunnel.sh
375- - store_artifacts :
376- path : dist/testlogs/tests/legacy-cli/e2e.saucelabs
377- - store_test_results :
378- path : dist/testlogs/tests/legacy-cli/e2e.saucelabs
379- - fail_fast
380-
381314 snapshot_publish :
382315 executor : action-executor
383316 resource_class : medium
@@ -449,48 +382,6 @@ jobs:
449382 node tests\legacy-cli\run_e2e.js --nb-shards=$env:CIRCLE_NODE_TOTAL --shard=$env:CIRCLE_NODE_INDEX --tmpdir=X:/ramdisk/e2e-main --ignore="tests/misc/browsers.ts"
450383 - fail_fast
451384
452- bazel-e2e-cli-win :
453- executor : windows-executor
454- parallelism : 12
455- steps :
456- - checkout
457- - rebase_pr_win
458- - setup_windows
459- - restore_cache :
460- keys :
461- - *cache_key_win
462- - run :
463- # We use Arsenal Image Mounter (AIM) instead of ImDisk because of: https://github.com/nodejs/node/issues/6861
464- # Useful resources for AIM: http://reboot.pro/index.php?showtopic=22068
465- name : ' Arsenal Image Mounter (RAM Disk)'
466- command : |
467- pwsh ./.circleci/win-ram-disk.ps1
468- - run : yarn install --frozen-lockfile --cache-folder ~/.cache/yarn
469- - save_cache :
470- key : *cache_key_win
471- paths :
472- - ~/.cache/yarn
473- # Path where Arsenal Image Mounter files are downloaded.
474- # Must match path in .circleci/win-ram-disk.ps1
475- - ./aim
476- - run :
477- name : Execute E2E Tests
478- environment :
479- # Required by `yarn ng-dev`
480- # See https://github.com/angular/angular/issues/46858
481- PWD : .
482- command : |
483- mkdir X:/ramdisk/e2e
484- bazel test --define=E2E_TEMP=X:/ramdisk/e2e --define=E2E_SHARD_TOTAL=$env:CIRCLE_NODE_TOTAL --define=E2E_SHARD_INDEX=$env:CIRCLE_NODE_INDEX --config=e2e //tests/legacy-cli:e2e.npm
485- # This timeout provides time for the actual tests to timeout and report status
486- # instead of CircleCI stopping the job without test failure information.
487- no_output_timeout : 40m
488- - fail_fast
489- - store_artifacts :
490- path : dist/testlogs/tests/legacy-cli/e2e.npm
491- - store_test_results :
492- path : dist/testlogs/tests/legacy-cli/e2e.npm
493-
494385workflows :
495386 version : 2
496387 default_workflow :
@@ -566,66 +457,22 @@ workflows:
566457 # These jobs only really depend on Setup, but the build job is very quick to run (~35s) and
567458 # will catch any build errors before proceeding to the more lengthy and resource intensive
568459 # Bazel jobs.
569- - bazel -test :
460+ - unit -test :
570461 name : test-node<< matrix.nodeversion >>
571462 matrix :
572463 parameters :
573464 nodeversion : *all_nodeversion_major
574465 requires :
575- - bazel-build
576-
577- # Windows jobs
578- - e2e-cli-win
579-
580- - bazel-e2e-cli-win
581-
582- # Bazel jobs
583- - bazel-build :
584- requires :
585- - setup
586-
587- - bazel-e2e-tests :
588- name : bazel-e2e-cli-<< matrix.subset >>
589- matrix :
590- parameters :
591- subset : *all_e2e_subsets
592- build_type : ' e2e'
593- filters :
594- branches :
595- ignore :
596- - main
597- - /\d+\.\d+\.x/
598- requires :
599- - bazel-build
466+ - build
600467
601- - bazel-e2e-tests :
602- name : bazel-e2e-snapshots-<< matrix.subset >>
603- matrix :
604- parameters :
605- subset : *all_e2e_subsets
606- build_type : ' snapshot'
607- pre-steps :
608- - when :
609- condition :
610- and :
611- - not :
612- equal : [main, << pipeline.git.branch >>]
613- - not : << pipeline.parameters.snapshot_changed >>
614- steps :
615- # Don't run snapshot E2E's unless it's on the main branch or the snapshots file has been updated.
616- - run : circleci-agent step halt
468+ # Compile the e2e tests with bazel to ensure the non-runtime typescript
469+ # compilation completes succesfully.
470+ - build-bazel-e2e :
617471 requires :
618- - bazel-build
619- filters :
620- branches :
621- only :
622- - main
623- # This is needed to run this steps on Renovate PRs that amend the snapshots package.json
624- - /^pull\/.*/
472+ - build
625473
626- - bazel-test-browsers :
627- requires :
628- - bazel-build
474+ # Windows jobs
475+ - e2e-cli-win
629476
630477 # Publish jobs
631478 - snapshot_publish :
0 commit comments