@@ -27,8 +27,7 @@ mainBuildFilters: &mainBuildFilters
27
27
branches :
28
28
only :
29
29
- develop
30
- - fix-ci-deps
31
- - issue-23843_electron_21_upgrade
30
+ - ' feature/v8-snapshots'
32
31
33
32
# usually we don't build Mac app - it takes a long time
34
33
# but sometimes we want to really confirm we are doing the right thing
@@ -37,8 +36,7 @@ macWorkflowFilters: &darwin-workflow-filters
37
36
when :
38
37
or :
39
38
- equal : [ develop, << pipeline.git.branch >> ]
40
- - equal : [ 'correct-dashboard-results', << pipeline.git.branch >> ]
41
- - equal : [ 'issue-23843_electron_21_upgrade', << pipeline.git.branch >> ]
39
+ - equal : [ 'feature/v8-snapshots', << pipeline.git.branch >> ]
42
40
- matches :
43
41
pattern : " -release$"
44
42
value : << pipeline.git.branch >>
@@ -47,8 +45,7 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters
47
45
when :
48
46
or :
49
47
- equal : [ develop, << pipeline.git.branch >> ]
50
- - equal : [ 'webkit-multidomain', << pipeline.git.branch >> ]
51
- - equal : [ 'issue-23843_electron_21_upgrade', << pipeline.git.branch >> ]
48
+ - equal : [ 'feature/v8-snapshots', << pipeline.git.branch >> ]
52
49
- matches :
53
50
pattern : " -release$"
54
51
value : << pipeline.git.branch >>
@@ -66,8 +63,7 @@ windowsWorkflowFilters: &windows-workflow-filters
66
63
when :
67
64
or :
68
65
- equal : [ develop, << pipeline.git.branch >> ]
69
- - equal : [ linux-arm64, << pipeline.git.branch >> ]
70
- - equal : [ 'ryanm/fix/windows-node-module-install', << pipeline.git.branch >> ]
66
+ - equal : [ 'feature/v8-snapshots', << pipeline.git.branch >> ]
71
67
- matches :
72
68
pattern : " -release$"
73
69
value : << pipeline.git.branch >>
@@ -114,25 +110,27 @@ executors:
114
110
environment :
115
111
PLATFORM : windows
116
112
117
- darwin-arm64 :
113
+ darwin-arm64 : &darwin-arm64-executor
118
114
machine : true
119
115
environment :
120
116
PLATFORM : darwin
121
117
122
- linux-arm64 :
118
+ linux-arm64 : &linux-arm64-executor
123
119
machine :
124
120
image : ubuntu-2004:2022.04.1
125
121
resource_class : arm.medium
126
122
environment :
127
123
PLATFORM : linux
124
+ # TODO: Disabling snapshots for now on Linux Arm 64 architectures. Will revisit with https://github.com/cypress-io/cypress/issues/23557
125
+ DISABLE_SNAPSHOT_REQUIRE : 1
128
126
129
127
commands :
130
128
verify_should_persist_artifacts :
131
129
steps :
132
130
- run :
133
131
name : Check current branch to persist artifacts
134
132
command : |
135
- if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "issue-23843_electron_21_upgrade " ]]; then
133
+ if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "feature/v8-snapshots " ]]; then
136
134
echo "Not uploading artifacts or posting install comment for this branch."
137
135
circleci-agent step halt
138
136
fi
@@ -199,6 +197,11 @@ commands:
199
197
command : |
200
198
source ./scripts/ensure-node.sh
201
199
yarn build
200
+ - run :
201
+ name : Generate v8 snapshot
202
+ command : |
203
+ source ./scripts/ensure-node.sh
204
+ yarn build-v8-snapshot-prod
202
205
- prepare-modules-cache # So we don't throw these in the workspace cache
203
206
- persist_to_workspace :
204
207
root : ~/
@@ -478,7 +481,7 @@ commands:
478
481
- run :
479
482
name : Run driver tests in Cypress
480
483
environment :
481
- CYPRESS_KONFIG_ENV : production
484
+ CYPRESS_CONFIG_ENV : production
482
485
command : |
483
486
echo Current working directory is $PWD
484
487
echo Total containers $CIRCLE_NODE_TOTAL
@@ -562,7 +565,7 @@ commands:
562
565
# internal PR
563
566
cmd=$([[ <<parameters.percy>> == 'true' ]] && echo 'yarn percy exec --parallel -- --') || true
564
567
DEBUG=<<parameters.debug>> \
565
- CYPRESS_KONFIG_ENV =production \
568
+ CYPRESS_CONFIG_ENV =production \
566
569
CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \
567
570
PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \
568
571
PERCY_ENABLE=${PERCY_TOKEN:-0} \
@@ -588,7 +591,7 @@ commands:
588
591
cd ../..
589
592
590
593
DEBUG=<<parameters.debug>> \
591
- CYPRESS_KONFIG_ENV =production \
594
+ CYPRESS_CONFIG_ENV =production \
592
595
PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \
593
596
PERCY_ENABLE=${PERCY_TOKEN:-0} \
594
597
PERCY_PARALLEL_TOTAL=-1 \
@@ -1063,14 +1066,16 @@ commands:
1063
1066
# notarization on Mac can take a while
1064
1067
no_output_timeout : " 45m"
1065
1068
command : |
1069
+ source ./scripts/ensure-node.sh
1070
+ node --version
1066
1071
if [[ `node ./scripts/get-platform-key.js` == 'linux-arm64' ]]; then
1067
1072
# these are missing on Circle and there is no way to pre-install them on Arm
1068
1073
sudo apt-get update
1069
1074
sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
1075
+ DISABLE_SNAPSHOT_REQUIRE=1 yarn binary-build --version $(node ./scripts/get-next-version.js)
1076
+ else
1077
+ yarn binary-build --version $(node ./scripts/get-next-version.js)
1070
1078
fi
1071
- source ./scripts/ensure-node.sh
1072
- node --version
1073
- yarn binary-build --version $(node ./scripts/get-next-version.js)
1074
1079
- run :
1075
1080
name : Zip the binary
1076
1081
command : |
@@ -1207,7 +1212,7 @@ jobs:
1207
1212
<< : *defaultsParameters
1208
1213
resource_class :
1209
1214
type : string
1210
- default : medium+
1215
+ default : large
1211
1216
resource_class : << parameters.resource_class >>
1212
1217
steps :
1213
1218
- restore_cached_workspace
@@ -1316,6 +1321,52 @@ jobs:
1316
1321
PERCY_PARALLEL_TOTAL=-1 \
1317
1322
yarn percy snapshot ./cli/visual-snapshots
1318
1323
1324
+ v8-integration-tests :
1325
+ << : *defaults
1326
+ parameters :
1327
+ << : *defaultsParameters
1328
+ resource_class :
1329
+ type : string
1330
+ default : medium
1331
+ resource_class : << parameters.resource_class >>
1332
+ parallelism : 1
1333
+ steps :
1334
+ - restore_cached_workspace
1335
+ - restore_cached_system_tests_deps
1336
+ # TODO: Remove this once we switch off self-hosted M1 runners
1337
+ - when :
1338
+ condition :
1339
+ equal : [ *darwin-arm64-executor, << parameters.executor >> ]
1340
+ steps :
1341
+ - run : rm -f /tmp/cypress/junit/*
1342
+ - unless :
1343
+ condition :
1344
+ or :
1345
+ - equal : [ *linux-arm64-executor, << parameters.executor >> ] # TODO: Figure out how to support linux-arm64 when we get to linux arm64 build: https://github.com/cypress-io/cypress/issues/23557
1346
+ steps :
1347
+ - run :
1348
+ name : Run v8 integration tests
1349
+ command : |
1350
+ source ./scripts/ensure-node.sh
1351
+ yarn test-integration --scope "'@tooling/{packherd,v8-snapshot,electron-mksnapshot}'"
1352
+ - verify-mocha-results :
1353
+ expectedResultCount : 3
1354
+ - when :
1355
+ condition :
1356
+ or :
1357
+ - equal : [ *linux-arm64-executor, << parameters.executor >> ]
1358
+ steps :
1359
+ - run :
1360
+ name : Run v8 integration tests
1361
+ command : |
1362
+ source ./scripts/ensure-node.sh
1363
+ yarn test-integration --scope "'@tooling/packherd'"
1364
+ - verify-mocha-results :
1365
+ expectedResultCount : 1
1366
+ - store_test_results :
1367
+ path : /tmp/cypress
1368
+ - store-npm-logs
1369
+
1319
1370
unit-tests :
1320
1371
<< : *defaults
1321
1372
parameters :
@@ -1346,7 +1397,7 @@ jobs:
1346
1397
# run type checking for each individual package
1347
1398
- run : yarn lerna run types
1348
1399
- verify-mocha-results :
1349
- expectedResultCount : 10
1400
+ expectedResultCount : 18
1350
1401
- store_test_results :
1351
1402
path : /tmp/cypress
1352
1403
# CLI tests generate HTML files with sample CLI command output
@@ -1677,7 +1728,7 @@ jobs:
1677
1728
working_directory : packages/reporter
1678
1729
- run :
1679
1730
command : |
1680
- CYPRESS_KONFIG_ENV =production \
1731
+ CYPRESS_CONFIG_ENV =production \
1681
1732
CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \
1682
1733
PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \
1683
1734
PERCY_ENABLE=${PERCY_TOKEN:-0} \
@@ -1700,7 +1751,7 @@ jobs:
1700
1751
- restore_cached_system_tests_deps
1701
1752
- run :
1702
1753
command : |
1703
- CYPRESS_KONFIG_ENV =production \
1754
+ CYPRESS_CONFIG_ENV =production \
1704
1755
CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \
1705
1756
PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \
1706
1757
PERCY_ENABLE=${PERCY_TOKEN:-0} \
@@ -1722,7 +1773,7 @@ jobs:
1722
1773
- restore_cached_system_tests_deps
1723
1774
- run :
1724
1775
command : |
1725
- CYPRESS_KONFIG_ENV =production \
1776
+ CYPRESS_CONFIG_ENV =production \
1726
1777
CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \
1727
1778
PERCY_PARALLEL_NONCE=$CIRCLE_WORKFLOW_WORKSPACE_ID \
1728
1779
PERCY_ENABLE=${PERCY_TOKEN:-0} \
@@ -1932,7 +1983,7 @@ jobs:
1932
1983
<< : *defaultsParameters
1933
1984
resource_class :
1934
1985
type : string
1935
- default : medium+
1986
+ default : large
1936
1987
resource_class : << parameters.resource_class >>
1937
1988
steps :
1938
1989
- restore_cached_workspace
@@ -1951,6 +2002,7 @@ jobs:
1951
2002
type : string
1952
2003
default : medium+
1953
2004
steps :
2005
+ - restore_cached_workspace
1954
2006
- clone-repo-and-checkout-branch :
1955
2007
repo : cypress-example-kitchensink
1956
2008
- install-required-node
@@ -1986,6 +2038,7 @@ jobs:
1986
2038
test-kitchensink-against-staging :
1987
2039
<< : *defaults
1988
2040
steps :
2041
+ - restore_cached_workspace
1989
2042
- clone-repo-and-checkout-branch :
1990
2043
repo : cypress-example-kitchensink
1991
2044
- install-required-node
@@ -2011,6 +2064,7 @@ jobs:
2011
2064
test-against-staging :
2012
2065
<< : *defaults
2013
2066
steps :
2067
+ - restore_cached_workspace
2014
2068
- clone-repo-and-checkout-branch :
2015
2069
repo : cypress-test-tiny
2016
2070
- run :
@@ -2517,6 +2571,9 @@ linux-x64-workflow: &linux-x64-workflow
2517
2571
- npm-cypress-schematic :
2518
2572
requires :
2519
2573
- build
2574
+ - v8-integration-tests :
2575
+ requires :
2576
+ - system-tests-node-modules-install
2520
2577
# This release definition must be updated with any new jobs
2521
2578
# Any attempts to automate this are welcome
2522
2579
# If CircleCI provided an "after all" hook, then this wouldn't be necessary
@@ -2567,6 +2624,7 @@ linux-x64-workflow: &linux-x64-workflow
2567
2624
- run-reporter-component-tests-chrome
2568
2625
- run-webpack-dev-server-integration-tests
2569
2626
- run-vite-dev-server-integration-tests
2627
+ - v8-integration-tests
2570
2628
2571
2629
# various testing scenarios, like building full binary
2572
2630
# and testing it on a real project
@@ -2677,6 +2735,13 @@ linux-arm64-workflow: &linux-arm64-workflow
2677
2735
requires :
2678
2736
- linux-arm64-build
2679
2737
2738
+ - v8-integration-tests :
2739
+ name : linux-arm64-v8-integration-tests
2740
+ executor : linux-arm64
2741
+ resource_class : arm.medium
2742
+ requires :
2743
+ - linux-arm64-build
2744
+
2680
2745
darwin-x64-workflow : &darwin-x64-workflow
2681
2746
jobs :
2682
2747
- node_modules_install :
@@ -2716,6 +2781,13 @@ darwin-x64-workflow: &darwin-x64-workflow
2716
2781
requires :
2717
2782
- darwin-x64-build
2718
2783
2784
+ - v8-integration-tests :
2785
+ name : darwin-x64-v8-integration-tests
2786
+ executor : mac
2787
+ resource_class : macos.x86.medium.gen2
2788
+ requires :
2789
+ - darwin-x64-build
2790
+
2719
2791
darwin-arm64-workflow : &darwin-arm64-workflow
2720
2792
jobs :
2721
2793
- node_modules_install :
@@ -2742,6 +2814,13 @@ darwin-arm64-workflow: &darwin-arm64-workflow
2742
2814
requires :
2743
2815
- darwin-arm64-build
2744
2816
2817
+ - v8-integration-tests :
2818
+ name : darwin-arm64-v8-integration-tests
2819
+ executor : darwin-arm64
2820
+ resource_class : cypress-io/latest_m1
2821
+ requires :
2822
+ - darwin-arm64-build
2823
+
2745
2824
windows-workflow : &windows-workflow
2746
2825
jobs :
2747
2826
- node_modules_install :
@@ -2803,6 +2882,13 @@ windows-workflow: &windows-workflow
2803
2882
requires :
2804
2883
- windows-create-build-artifacts
2805
2884
2885
+ - v8-integration-tests :
2886
+ name : windows-v8-integration-tests
2887
+ executor : windows
2888
+ resource_class : windows.large
2889
+ requires :
2890
+ - windows-build
2891
+
2806
2892
workflows :
2807
2893
linux-x64 :
2808
2894
<< : *linux-x64-workflow
0 commit comments