Skip to content

Commit 8e23148

Browse files
Merge pull request #27040 from cypress-io/release/13.0.0
2 parents e533618 + 1c7b178 commit 8e23148

File tree

538 files changed

+26808
-9659
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

538 files changed

+26808
-9659
lines changed

.circleci/cache-version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Bump this version to force CI to re-create the cache from scratch.
22

3-
08-19-23
3+
08-19-23

.circleci/workflows.yml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ mainBuildFilters: &mainBuildFilters
3030
- /^release\/\d+\.\d+\.\d+$/
3131
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
3232
- 'update-v8-snapshot-cache-on-develop'
33-
- 'fix/resolve_browser_process_correctly_for_mjs'
34-
- 'chore/bump_loaders_and_optimize_webpack'
35-
- 'bump-circle-cache'
33+
- 'publish-binary'
34+
- 'cacie/chore/capture-metadata'
3635

3736
# usually we don't build Mac app - it takes a long time
3837
# but sometimes we want to really confirm we are doing the right thing
@@ -43,8 +42,7 @@ macWorkflowFilters: &darwin-workflow-filters
4342
- equal: [ develop, << pipeline.git.branch >> ]
4443
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
4544
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
46-
- equal: [ 'fix/resolve_browser_process_correctly_for_mjs', << pipeline.git.branch >> ]
47-
- equal: [ 'bump-circle-cache', << pipeline.git.branch >> ]
45+
- equal: [ cacie/chore/capture-metadata', << pipeline.git.branch >> ]
4846
- matches:
4947
pattern: /^release\/\d+\.\d+\.\d+$/
5048
value: << pipeline.git.branch >>
@@ -55,9 +53,8 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters
5553
- equal: [ develop, << pipeline.git.branch >> ]
5654
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
5755
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
58-
- equal: [ 'fix/resolve_browser_process_correctly_for_mjs', << pipeline.git.branch >> ]
59-
- equal: [ 'chore/bump_loaders_and_optimize_webpack', << pipeline.git.branch >> ]
60-
- equal: [ 'astone123/fix-get-published-artifacts', << pipeline.git.branch >> ]
56+
- equal: [ 'publish-binary', << pipeline.git.branch >> ]
57+
- equal: [ cacie/chore/capture-metadata', << pipeline.git.branch >> ]
6158
- matches:
6259
pattern: /^release\/\d+\.\d+\.\d+$/
6360
value: << pipeline.git.branch >>
@@ -77,8 +74,7 @@ windowsWorkflowFilters: &windows-workflow-filters
7774
- equal: [ develop, << pipeline.git.branch >> ]
7875
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
7976
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
80-
- equal: [ 'fix/resolve_browser_process_correctly_for_mjs', << pipeline.git.branch >> ]
81-
- equal: [ 'bump-circle-cache', << pipeline.git.branch >> ]
77+
- equal: [ cacie/chore/capture-metadata', << pipeline.git.branch >> ]
8278
- matches:
8379
pattern: /^release\/\d+\.\d+\.\d+$/
8480
value: << pipeline.git.branch >>
@@ -148,7 +144,7 @@ commands:
148144
name: Set environment variable to determine whether or not to persist artifacts
149145
command: |
150146
echo "Setting SHOULD_PERSIST_ARTIFACTS variable"
151-
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "publish-binary" && "$CIRCLE_BRANCH" != "fix/resolve_browser_process_correctly_for_mjs" ]]; then
147+
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "publish-binary" && "$CIRCLE_BRANCH" != "update-v8-snapshot-cache-on-develop" && "$CIRCLE_BRANCH" != "ryanm/feat/handle-304s" ]]; then
152148
export SHOULD_PERSIST_ARTIFACTS=true
153149
fi' >> "$BASH_ENV"
154150
# You must run `setup_should_persist_artifacts` command and be using bash before running this command
@@ -219,6 +215,7 @@ commands:
219215
command: |
220216
source ./scripts/ensure-node.sh
221217
yarn gulp buildProd
218+
yarn gulp syncCloudValidations
222219
- run:
223220
name: Build packages
224221
command: |
@@ -511,7 +508,7 @@ commands:
511508
# internal PR
512509
CYPRESS_RECORD_KEY=$MAIN_RECORD_KEY \
513510
CYPRESS_INTERNAL_ENABLE_TELEMETRY="true" \
514-
yarn cypress:run --record --parallel --group 5x-driver-<<parameters.browser>> --browser <<parameters.browser>>
511+
yarn cypress:run --record --parallel --group 5x-driver-<<parameters.browser>> --browser <<parameters.browser>> --runner-ui
515512
else
516513
# external PR
517514
TESTFILES=$(circleci tests glob "cypress/e2e/**/*.cy.*" | circleci tests split --total=$CIRCLE_NODE_TOTAL)
@@ -520,7 +517,7 @@ commands:
520517
if [[ -z "$TESTFILES" ]]; then
521518
echo "Empty list of test files"
522519
fi
523-
yarn cypress:run --browser <<parameters.browser>> --spec $TESTFILES
520+
yarn cypress:run --browser <<parameters.browser>> --spec $TESTFILES --runner-ui
524521
fi
525522
working_directory: packages/driver
526523
- verify-mocha-results
@@ -594,7 +591,7 @@ commands:
594591
if [[ <<parameters.type>> == 'ct' ]]; then
595592
# component tests are located side by side with the source codes.
596593
# for the app component tests, ignore specs that are known to cause failures on contributor PRs (see https://discuss.circleci.com/t/how-to-exclude-certain-files-from-circleci-test-globbing/41028)
597-
TESTFILES=$(find src -regextype posix-extended -name '*.cy.*' -not -regex '.*(FileMatch|PromoAction|SelectorPlayground).cy.*' | circleci tests split --total=$CIRCLE_NODE_TOTAL)
594+
TESTFILES=$(find src -regextype posix-extended -name '*.cy.*' -not -regex '.*(FileMatch|PromoAction|SelectorPlayground|useDurationFormat|useTestingType|SpecPatterns).cy.*' | circleci tests split --total=$CIRCLE_NODE_TOTAL)
598595
else
599596
GLOB="cypress/e2e/**/*cy.*"
600597
TESTFILES=$(circleci tests glob "$GLOB" | circleci tests split --total=$CIRCLE_NODE_TOTAL)
@@ -1850,7 +1847,7 @@ jobs:
18501847
PERCY_ENABLE=${PERCY_TOKEN:-0} \
18511848
PERCY_PARALLEL_TOTAL=-1 \
18521849
yarn percy exec --parallel -- -- \
1853-
yarn cypress:run --record --parallel --group reporter
1850+
yarn cypress:run --record --parallel --group reporter --runner-ui
18541851
working_directory: packages/reporter
18551852
- verify-mocha-results
18561853
- store_test_results:
@@ -2191,7 +2188,6 @@ jobs:
21912188
CYPRESS_PROJECT_ID=$TEST_KITCHENSINK_PROJECT_ID \
21922189
CYPRESS_RECORD_KEY=$TEST_KITCHENSINK_RECORD_KEY \
21932190
CYPRESS_INTERNAL_ENV=staging \
2194-
CYPRESS_video=false \
21952191
yarn cypress:run --project /tmp/cypress-example-kitchensink --record
21962192
- store-npm-logs
21972193

@@ -2807,7 +2803,7 @@ linux-x64-workflow: &linux-x64-workflow
28072803
- build
28082804
- wait-for-binary-publish:
28092805
type: approval
2810-
requires:
2806+
requires:
28112807
- create-and-trigger-packaging-artifacts
28122808
- get-published-artifacts:
28132809
context:
@@ -2924,7 +2920,7 @@ linux-arm64-workflow: &linux-arm64-workflow
29242920
- wait-for-binary-publish:
29252921
name: linux-arm64-wait-for-binary-publish
29262922
type: approval
2927-
requires:
2923+
requires:
29282924
- linux-arm64-create-and-trigger-packaging-artifacts
29292925

29302926
- get-published-artifacts:

.eslintrc.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ module.exports = {
4040
'cli/types/**',
4141
// these fixtures are supposed to fail linting
4242
'npm/eslint-plugin-dev/test/fixtures/**',
43+
// Cloud generated
44+
'system-tests/lib/validations/**',
4345
],
4446
overrides: [
4547
{

.gitattributes

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44

55
**/.eslintrc text eol=lf
66

7-
packages/errors/__snapshot-html__/** linguist-generated=true
7+
packages/errors/__snapshot-html__/** linguist-generated=true
8+
system-tests/lib/validations/** linguist-generated=true

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
2+
#
3+
# Changes to the Module API, after:run, or after:spec results should be
4+
# reviewed by Brian and/or Jennifer
5+
/system-tests/__snapshots__/results_spec.ts.js @brian-mann @jennifer-shehane

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,3 +395,6 @@ tooling/v8-snapshot/cache/dev-win32
395395
tooling/v8-snapshot/cache/prod-darwin
396396
tooling/v8-snapshot/cache/prod-linux
397397
tooling/v8-snapshot/cache/prod-win32
398+
399+
# Cloud API validations
400+
system-tests/lib/validations

cli/CHANGELOG.md

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,24 @@
11
<!-- See the ../guides/writing-the-cypress-changelog.md for details on writing the changelog. -->
2-
## 12.17.5
2+
## 13.0.0
33

4-
_Released 08/29/2023 (PENDING)_
4+
_Released 08/22/2023 (PENDING)_
5+
6+
**Breaking Changes:**
7+
8+
- The [`cy.readFile()`](/api/commands/readfile) command is now retry-able as a [query command](https://on.cypress.io/retry-ability). This should not affect any tests using it; the functionality is unchanged. However, it can no longer be overwritten using [`Cypress.Commands.overwrite()`](/api/cypress-api/custom-commands#Overwrite-Existing-Commands). Addressed in [#25595](https://github.com/cypress-io/cypress/pull/25595).
9+
- The [`video`](https://docs.cypress.io/guides/references/configuration#Videos) configuration option now defaults to `false`. Addresses [#26157](https://github.com/cypress-io/cypress/issues/26157).
10+
- The [`videoCompression`](https://docs.cypress.io/guides/references/configuration#Videos) configuration option now defaults to `false`. Addresses [#26160](https://github.com/cypress-io/cypress/issues/26160).
11+
- The [`videoUploadOnPasses`](https://docs.cypress.io/guides/references/configuration#Videos) configuration option has been removed. Please see our [screenshots & videos guide](https://docs.cypress.io/guides/guides/screenshots-and-videos#Delete-videos-for-specs-without-failing-or-retried-tests) on how to accomplish similar functionality. Addresses [#26899](https://github.com/cypress-io/cypress/issues/26899).
12+
- The current spec path is now passed from the AUT iframe using a query parameter rather than a path segment. This allows for requests for assets at relative paths to be correctly forwarded to the dev server. Fixes [#26725](https://github.com/cypress-io/cypress/issues/26725).
13+
- The deprecated configuration option, `nodeVersion` has been removed. Addresses [#27016](https://github.com/cypress-io/cypress/issues/27016).
14+
- The properties and values returned by the [Module API](https://docs.cypress.io/guides/guides/module-api) and included in the arguments of handlers for the [`after:run`](https://docs.cypress.io/api/plugins/after-run-api) and [`after:spec`](https://docs.cypress.io/api/plugins/after-spec-api) have been changed to be more consistent. Addresses [#23805](https://github.com/cypress-io/cypress/issues/23805).
15+
- For Cypress Cloud runs with Test Replay enabled, the Cypress Runner UI is now hidden during the run since the Runner will be visible during Test Replay. As such, if video is recorded (which is now defaulted to `false`) during the run, the Runner will not be visible. In addition, if a runner screenshot (`cy.screenshot({ capture: runner })`) is captured, it will no longer contain the Runner.
16+
- Node 14 support has been removed and Node 16 support has been deprecated. Node 16 may continue to work with Cypress `v13`, but will not be supported moving forward to closer coincide with [Node 16's end-of-life](https://nodejs.org/en/blog/announcements/nodejs16-eol) schedule. It is recommended that users update to at least Node 18.
17+
- The minimum supported Typescript version is `4.x`.
18+
19+
**Features:**
20+
21+
- Consolidates and improves terminal output when uploading test artifacts to Cypress Cloud. Addressed in [#27402](https://github.com/cypress-io/cypress/pull/27402)
522

623
**Bugfixes:**
724

@@ -11,6 +28,10 @@ _Released 08/29/2023 (PENDING)_
1128
- Fixed an issue where the correct `pnp` process was not being discovered. Fixes [#27562](https://github.com/cypress-io/cypress/issues/27562).
1229
- Fixed incorrect type declarations for Cypress and Chai globals that asserted them to be local variables of the global scope rather than properties on the global object. Fixes [#27539](https://github.com/cypress-io/cypress/issues/27539). Fixed in [#27540](https://github.com/cypress-io/cypress/pull/27540).
1330

31+
**Dependency Updates:**
32+
33+
- Upgraded [`@cypress/request`](https://www.npmjs.com/package/@cypress/request) from `^2.88.11` to `^3.0.0` to address the [CVE-2023-28155](https://github.com/advisories/GHSA-p8p7-x288-28g6) security vulnerability. Addresses [#27535](https://github.com/cypress-io/cypress/issues/27535). Addressed in [#27495](https://github.com/cypress-io/cypress/pull/27495).
34+
1435
## 12.17.4
1536

1637
_Released 08/15/2023_

cli/__snapshots__/cli_spec.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ exports['shows help for run --foo 1'] = `
8686
-q, --quiet run quietly, using only the configured reporter
8787
--record [bool] records the run. sends test results, screenshots and videos to Cypress Cloud.
8888
-r, --reporter <reporter> runs a specific mocha reporter. pass a path to use a custom reporter. defaults to "spec"
89+
--runner-ui displays the Cypress Runner UI
90+
--no-runner-ui hides the Cypress Runner UI
8991
-o, --reporter-options <reporter-options> options for the mocha reporter. defaults to "null"
9092
-s, --spec <spec> runs specific spec file(s). defaults to "all"
9193
-t, --tag <tag> named tag(s) for recorded runs in Cypress Cloud

cli/lib/cli.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ const descriptions = {
122122
record: 'records the run. sends test results, screenshots and videos to Cypress Cloud.',
123123
reporter: 'runs a specific mocha reporter. pass a path to use a custom reporter. defaults to "spec"',
124124
reporterOptions: 'options for the mocha reporter. defaults to "null"',
125+
runnerUi: 'displays the Cypress Runner UI',
126+
noRunnerUi: 'hides the Cypress Runner UI',
125127
spec: 'runs specific spec file(s). defaults to "all"',
126128
tag: 'named tag(s) for recorded runs in Cypress Cloud',
127129
version: 'prints Cypress version',
@@ -252,6 +254,8 @@ const addCypressRunCommand = (program) => {
252254
.option('-q, --quiet', text('quiet'))
253255
.option('--record [bool]', text('record'), coerceFalse)
254256
.option('-r, --reporter <reporter>', text('reporter'))
257+
.option('--runner-ui', text('runnerUi'))
258+
.option('--no-runner-ui', text('noRunnerUi'))
255259
.option('-o, --reporter-options <reporter-options>', text('reporterOptions'))
256260
.option('-s, --spec <spec>', text('spec'))
257261
.option('-t, --tag <tag>', text('tag'))

cli/lib/exec/run.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ const processRunOptions = (options = {}) => {
133133
args.push('--reporter-options', options.reporterOptions)
134134
}
135135

136+
if (options.runnerUi != null) {
137+
args.push('--runner-ui', options.runnerUi)
138+
}
139+
136140
// if we have specific spec(s) push that into the args
137141
if (options.spec) {
138142
args.push('--spec', options.spec)

0 commit comments

Comments
 (0)