@@ -129,6 +129,7 @@ commands:
129129 steps :
130130 - attach_workspace :
131131 at : *workspace_location
132+
132133 setup_windows :
133134 steps :
134135 - initialize_env
@@ -158,15 +159,6 @@ commands:
158159 - devinfra/setup-bazel-remote-exec :
159160 shell : bash
160161
161- install_python :
162- steps :
163- - run :
164- name : ' Install Python 2'
165- command : |
166- sudo apt-get update > /dev/null 2>&1
167- sudo apt-get install -y python
168- python --version
169-
170162# Job definitions
171163jobs :
172164 setup :
@@ -219,86 +211,7 @@ jobs:
219211 - run : yarn -s admin validate
220212 - run : yarn -s check-tooling-setup
221213
222- e2e-tests :
223- parameters :
224- nodeversion :
225- type : string
226- default : *default_nodeversion
227- snapshots :
228- type : boolean
229- default : false
230- subset :
231- type : enum
232- enum : *all_e2e_subsets
233- default : ' npm'
234- executor :
235- name : action-executor
236- nodeversion : << parameters.nodeversion >>
237- parallelism : 8
238- resource_class : large
239- steps :
240- - custom_attach_workspace
241- - browser-tools/install-chrome
242- - initialize_env
243- - run : mkdir /mnt/ramdisk/e2e
244- - when :
245- condition :
246- equal : ['npm', << parameters.subset >>]
247- steps :
248- - run :
249- name : Execute CLI E2E Tests with NPM
250- command : |
251- node ./tests/legacy-cli/run_e2e --nb-shards=${CIRCLE_NODE_TOTAL} --shard=${CIRCLE_NODE_INDEX} <<# parameters.snapshots >>--ng-snapshots<</ parameters.snapshots >> --tmpdir=/mnt/ramdisk/e2e --ignore="tests/misc/browsers.ts"
252- - when :
253- condition :
254- equal : ['esbuild', << parameters.subset >>]
255- steps :
256- - run :
257- name : Execute CLI E2E Tests Subset with Esbuild
258- command : |
259- node ./tests/legacy-cli/run_e2e --nb-shards=${CIRCLE_NODE_TOTAL} --shard=${CIRCLE_NODE_INDEX} <<# parameters.snapshots >>--ng-snapshots<</ parameters.snapshots >> --esbuild --tmpdir=/mnt/ramdisk/e2e --glob="{tests/basic/**,tests/build/prod-build.ts,tests/build/relative-sourcemap.ts,tests/build/styles/scss.ts,tests/build/styles/include-paths.ts,tests/commands/add/add-pwa.ts}" --ignore="tests/basic/{environment,rebuild,serve,scripts-array}.ts"
260- - when :
261- condition :
262- equal : ['yarn', << parameters.subset >>]
263- steps :
264- - run :
265- name : Execute CLI E2E Tests Subset with Yarn
266- command : |
267- node ./tests/legacy-cli/run_e2e --nb-shards=${CIRCLE_NODE_TOTAL} --shard=${CIRCLE_NODE_INDEX} <<# parameters.snapshots >>--ng-snapshots<</ parameters.snapshots >> --yarn --tmpdir=/mnt/ramdisk/e2e --glob="{tests/basic/**,tests/update/**,tests/commands/add/**}"
268- - fail_fast
269-
270- test-browsers :
271- executor :
272- name : action-executor
273- resource_class : medium
274- steps :
275- - custom_attach_workspace
276- - initialize_env
277- - run :
278- name : Initialize Saucelabs
279- command : setSecretVar SAUCE_ACCESS_KEY $(echo $SAUCE_ACCESS_KEY | rev)
280- - run :
281- name : Start Saucelabs Tunnel
282- command : ./scripts/saucelabs/start-tunnel.sh
283- background : true
284- # Waits for the Saucelabs tunnel to be ready. This ensures that we don't run tests
285- # too early without Saucelabs not being ready.
286- - run : ./scripts/saucelabs/wait-for-tunnel.sh
287- - run : node ./tests/legacy-cli/run_e2e --glob="tests/misc/browsers.ts"
288- - run : ./scripts/saucelabs/stop-tunnel.sh
289- - fail_fast
290-
291214 build :
292- executor : action-executor
293- steps :
294- - custom_attach_workspace
295- - run : yarn build
296- - persist_to_workspace :
297- root : *workspace_location
298- paths :
299- - dist/_*.tgz
300-
301- bazel-build :
302215 executor : bazel-executor
303216 steps :
304217 - custom_attach_workspace
@@ -308,7 +221,7 @@ jobs:
308221 command : yarn bazel build //...
309222 - fail_fast
310223
311- bazel- test :
224+ test :
312225 executor : bazel-executor
313226 parameters :
314227 nodeversion :
@@ -340,7 +253,7 @@ jobs:
340253 no_output_timeout : 40m
341254 - fail_fast
342255
343- bazel- e2e-tests :
256+ e2e-tests :
344257 executor : bazel-executor
345258 parallelism : 8
346259 parameters :
@@ -366,7 +279,7 @@ jobs:
366279 path : dist/testlogs/tests/legacy-cli/e2e.<< parameters.subset >>
367280 - fail_fast
368281
369- bazel- test-browsers :
282+ test-browsers :
370283 executor : bazel-executor
371284 steps :
372285 - custom_attach_workspace
@@ -397,7 +310,6 @@ jobs:
397310 resource_class : medium
398311 steps :
399312 - custom_attach_workspace
400- - install_python
401313 - run :
402314 name : Deployment to Snapshot
403315 command : yarn admin snapshots --verbose
@@ -423,40 +335,6 @@ jobs:
423335
424336 # Windows jobs
425337 e2e-cli-win :
426- executor : windows-executor
427- parallelism : 16
428- steps :
429- - checkout
430- - rebase_pr_win
431- - setup_windows
432- - restore_cache :
433- keys :
434- - *cache_key_win
435- - run :
436- # We use Arsenal Image Mounter (AIM) instead of ImDisk because of: https://github.com/nodejs/node/issues/6861
437- # Useful resources for AIM: http://reboot.pro/index.php?showtopic=22068
438- name : ' Arsenal Image Mounter (RAM Disk)'
439- command : |
440- pwsh ./.circleci/win-ram-disk.ps1
441- - run : yarn install --frozen-lockfile --cache-folder ../.cache/yarn
442- - save_cache :
443- key : *cache_key_win
444- paths :
445- - ~/.cache/yarn
446- # Path where Arsenal Image Mounter files are downloaded.
447- # Must match path in .circleci/win-ram-disk.ps1
448- - ./aim
449- # Build the npm packages for the e2e tests
450- - run : yarn build
451- # Run partial e2e suite on PRs only. Release branches will run the full e2e suite.
452- - run :
453- name : Execute E2E Tests
454- command : |
455- mkdir X:/ramdisk/e2e-main
456- 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"
457- - fail_fast
458-
459- bazel-e2e-cli-win :
460338 executor : windows-executor
461339 parallelism : 12
462340 steps :
@@ -511,42 +389,34 @@ workflows:
511389 - validate :
512390 requires :
513391 - setup
514- - build :
515- requires :
516- - setup
517392
518- - test-browsers :
519- requires :
520- - build
521-
522- - e2e-tests :
523- name : e2e-cli-<< matrix.subset >>
524- nodeversion : ' 14.20'
393+ # These jobs only really depend on Setup, but the build job is very quick to run (~35s) and
394+ # will catch any build errors before proceeding to the more lengthy and resource intensive
395+ - test :
396+ name : test-node<< matrix.nodeversion >>
525397 matrix :
526398 parameters :
527- subset : *all_e2e_subsets
528- filters :
529- branches :
530- ignore :
531- - main
532- - /\d+\.\d+\.x/
399+ nodeversion : *all_nodeversion_major
533400 requires :
534401 - build
535402
403+ # Bazel jobs
404+ - build :
405+ requires :
406+ - setup
407+
536408 - e2e-tests :
537409 name : e2e-cli-node-<<matrix.nodeversion>>-<< matrix.subset >>
538410 matrix :
539411 alias : e2e-cli
540412 parameters :
541- nodeversion : ['14.20', '16.13', '18.10']
542413 subset : *all_e2e_subsets
414+ snapshots : false
543415 requires :
544416 - build
545- << : *only_release_branches
546417
547418 - e2e-tests :
548419 name : e2e-snapshots-<< matrix.subset >>
549- nodeversion : ' 16.13'
550420 matrix :
551421 parameters :
552422 subset : *all_e2e_subsets
@@ -565,64 +435,16 @@ workflows:
565435 - build
566436 << : *only_snapshot_branches
567437
568- # Bazel jobs
569- # These jobs only really depend on Setup, but the build job is very quick to run (~35s) and
570- # will catch any build errors before proceeding to the more lengthy and resource intensive
571- # Bazel jobs.
572- - bazel-test :
573- name : test-node<< matrix.nodeversion >>
574- matrix :
575- parameters :
576- nodeversion : *all_nodeversion_major
438+ - test-browsers :
577439 requires :
578- - bazel- build
440+ - build
579441
580442 # Windows jobs
581443 - e2e-cli-win
582444
583- - bazel-e2e-cli-win
584-
585- # Bazel jobs
586- - bazel-build :
587- requires :
588- - setup
589-
590- - bazel-e2e-tests :
591- name : bazel-e2e-cli-<< matrix.subset >>
592- matrix :
593- parameters :
594- subset : *all_e2e_subsets
595- snapshots : false
596- requires :
597- - bazel-build
598-
599- - bazel-e2e-tests :
600- name : bazel-e2e-snapshots-<< matrix.subset >>
601- matrix :
602- parameters :
603- subset : *all_e2e_subsets
604- snapshots : true
605- pre-steps :
606- - when :
607- # Don't run snapshot E2E's unless it's on the main branch or the snapshots file has been updated.
608- condition :
609- and :
610- - not :
611- equal : [main, << pipeline.git.branch >>]
612- - not : << pipeline.parameters.snapshot_changed >>
613- steps :
614- - run : circleci-agent step halt
615- requires :
616- - bazel-build
617- << : *only_snapshot_branches
618-
619- - bazel-test-browsers :
620- requires :
621- - bazel-build
622-
623445 # Publish jobs
624446 - snapshot_publish :
625- << : *only_release_branches
447+ # <<: *only_release_branches
626448 requires :
627449 - setup
628450 - e2e-cli
0 commit comments