Skip to content

Commit 0cfea88

Browse files
alan-agius4clydin
authored andcommitted
ci: create e2e matrices
With this commit, we create different matrices for our e2e tests. This reduces the duration of the workflow by ~7mins More information: https://circleci.com/docs/using-matrix-jobs
1 parent 3220d11 commit 0cfea88

File tree

1 file changed

+55
-24
lines changed

1 file changed

+55
-24
lines changed

.circleci/dynamic_config.yml

+55-24
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ var_5: &only_release_branches
3737
- main
3838
- /\d+\.\d+\.x/
3939

40+
var_6: &all_e2e_subsets ['npm', 'esbuild', 'yarn']
41+
4042
# Executor Definitions
4143
# https://circleci.com/docs/2.0/reusing-config/#authoring-reusable-executors
4244
executors:
@@ -207,14 +209,18 @@ jobs:
207209
- run: yarn -s admin validate
208210
- run: yarn -s check-tooling-setup
209211

210-
e2e-cli:
212+
e2e-tests:
211213
parameters:
212214
nodeversion:
213215
type: string
214216
default: *default_nodeversion
215217
snapshots:
216218
type: boolean
217219
default: false
220+
subset:
221+
type: enum
222+
enum: *all_e2e_subsets
223+
default: 'npm'
218224
executor:
219225
name: test-executor
220226
nodeversion: << parameters.nodeversion >>
@@ -223,21 +229,31 @@ jobs:
223229
- custom_attach_workspace
224230
- browser-tools/install-chrome
225231
- initialize_env
226-
- run:
227-
name: Execute CLI E2E Tests
228-
command: |
229-
mkdir /mnt/ramdisk/e2e-main
230-
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-main
231-
- run:
232-
name: Execute CLI E2E Tests Subset with Yarn
233-
command: |
234-
mkdir /mnt/ramdisk/e2e-yarn
235-
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-yarn --glob="{tests/basic/**,tests/update/**,tests/commands/add/**}"
236-
- run:
237-
name: Execute CLI E2E Tests Subset with esbuild builder
238-
command: |
239-
mkdir /mnt/ramdisk/e2e-esbuild
240-
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-esbuild --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"
232+
- run: mkdir /mnt/ramdisk/e2e
233+
- when:
234+
condition:
235+
equal: ['npm', << parameters.subset >>]
236+
steps:
237+
- run:
238+
name: Execute CLI E2E Tests with NPM
239+
command: |
240+
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
241+
- when:
242+
condition:
243+
equal: ['esbuild', << parameters.subset >>]
244+
steps:
245+
- run:
246+
name: Execute CLI E2E Tests Subset with Esbuild
247+
command: |
248+
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"
249+
- when:
250+
condition:
251+
equal: ['yarn', << parameters.subset >>]
252+
steps:
253+
- run:
254+
name: Execute CLI E2E Tests Subset with Yarn
255+
command: |
256+
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/**}"
241257
- fail_fast
242258

243259
test-browsers:
@@ -359,22 +375,37 @@ workflows:
359375
requires:
360376
- setup
361377

362-
- e2e-cli:
363-
name: e2e-cli
378+
- e2e-tests:
379+
name: e2e-cli-<< matrix.subset >>
364380
nodeversion: '14.15'
381+
matrix:
382+
parameters:
383+
subset: *all_e2e_subsets
384+
filters:
385+
branches:
386+
ignore:
387+
- main
388+
- /\d+\.\d+\.x/
365389
requires:
366390
- build
367391

368-
- e2e-cli:
369-
name: e2e-cli-node-16
370-
nodeversion: '16.10'
371-
<<: *only_release_branches
392+
- e2e-tests:
393+
name: e2e-cli-node-<<matrix.nodeversion>>-<< matrix.subset >>
394+
matrix:
395+
alias: e2e-cli
396+
parameters:
397+
nodeversion: ['14.15', '16.10']
398+
subset: *all_e2e_subsets
372399
requires:
373400
- build
401+
<<: *only_release_branches
374402

375-
- e2e-cli:
376-
name: e2e-cli-ng-snapshots
403+
- e2e-tests:
404+
name: e2e-snapshots-<< matrix.subset >>
377405
nodeversion: '16.10'
406+
matrix:
407+
parameters:
408+
subset: *all_e2e_subsets
378409
snapshots: true
379410
pre-steps:
380411
- when:

0 commit comments

Comments
 (0)