Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,6 @@ jobs:
name: Generate path-filtered pipeline parameters
environment:
RUN_ALL_JOBS: << pipeline.parameters.run-all-jobs >>
RUN_PROXY_DISABLED_TESTS: << pipeline.parameters.run-proxy-disabled-tests >>
command: |
bash .circleci/scripts/generate-pipeline-parameters.sh \
> /tmp/pipeline-parameters.json
Expand Down
14 changes: 7 additions & 7 deletions .circleci/scripts/generate-pipeline-parameters.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,16 @@ npm_grep_tests=false
npm_eslint_plugin_tests=false
npm_schematic_tests=false

# Opt-in only — never enabled by path filtering or emit_all_true. Set via
# Trigger Pipeline → run-proxy-disabled-tests=true (setup config forwards it).
run_proxy_disabled_tests=false
if [[ "${RUN_PROXY_DISABLED_TESTS:-false}" == "true" || "${RUN_PROXY_DISABLED_TESTS:-}" == "1" ]]; then
run_proxy_disabled_tests=true
fi
# run-proxy-disabled-tests is NOT forwarded here: it's already a pipeline
# parameter declared in both the setup config and .circleci/packed/pipeline.yml,
# so it's inherited into the continued config automatically via
# << pipeline.parameters.run-proxy-disabled-tests >>. Re-passing it through
# continuation's `parameters` map collides with that inherited value and
# CircleCI rejects the continuation with "Conflicting pipeline parameters."

emit_json() {
cat <<EOF
{"run-driver-tests": $driver_tests, "run-server-tests": $server_tests, "run-app-ui-tests": $app_ui_tests, "run-launchpad-tests": $launchpad_tests, "run-reporter-tests": $reporter_tests, "run-frontend-shared-tests": $frontend_shared_tests, "run-system-tests": $system_tests, "run-v8-tests": $v8_tests, "run-cli-tests": $cli_tests, "run-unit-tests": $unit_tests, "run-npm-webpack-dev-server-tests": $npm_webpack_dev_server_tests, "run-npm-vite-dev-server-tests": $npm_vite_dev_server_tests, "run-npm-webpack-preprocessor-tests": $npm_webpack_preprocessor_tests, "run-npm-webpack-batteries-tests": $npm_webpack_batteries_tests, "run-npm-vue-tests": $npm_vue_tests, "run-npm-react-tests": $npm_react_tests, "run-npm-angular-tests": $npm_angular_tests, "run-npm-puppeteer-tests": $npm_puppeteer_tests, "run-npm-vite-plugin-esm-tests": $npm_vite_plugin_esm_tests, "run-npm-mount-utils-tests": $npm_mount_utils_tests, "run-npm-grep-tests": $npm_grep_tests, "run-npm-eslint-plugin-tests": $npm_eslint_plugin_tests, "run-npm-schematic-tests": $npm_schematic_tests, "run-proxy-disabled-tests": $run_proxy_disabled_tests}
{"run-driver-tests": $driver_tests, "run-server-tests": $server_tests, "run-app-ui-tests": $app_ui_tests, "run-launchpad-tests": $launchpad_tests, "run-reporter-tests": $reporter_tests, "run-frontend-shared-tests": $frontend_shared_tests, "run-system-tests": $system_tests, "run-v8-tests": $v8_tests, "run-cli-tests": $cli_tests, "run-unit-tests": $unit_tests, "run-npm-webpack-dev-server-tests": $npm_webpack_dev_server_tests, "run-npm-vite-dev-server-tests": $npm_vite_dev_server_tests, "run-npm-webpack-preprocessor-tests": $npm_webpack_preprocessor_tests, "run-npm-webpack-batteries-tests": $npm_webpack_batteries_tests, "run-npm-vue-tests": $npm_vue_tests, "run-npm-react-tests": $npm_react_tests, "run-npm-angular-tests": $npm_angular_tests, "run-npm-puppeteer-tests": $npm_puppeteer_tests, "run-npm-vite-plugin-esm-tests": $npm_vite_plugin_esm_tests, "run-npm-mount-utils-tests": $npm_mount_utils_tests, "run-npm-grep-tests": $npm_grep_tests, "run-npm-eslint-plugin-tests": $npm_eslint_plugin_tests, "run-npm-schematic-tests": $npm_schematic_tests}
EOF
}

Expand Down
16 changes: 16 additions & 0 deletions .circleci/src/pipeline/@pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2118,11 +2118,22 @@ jobs:
resource_class:
type: string
default: medium.gen2
disable-proxy:
description: run with the MITM proxy disabled (CDP Fetch network interception path)
type: boolean
default: false
require-opt-in:
description: when disable-proxy is true, halt unless run-proxy-disabled-tests=true
type: boolean
default: true
resource_class: << parameters.resource_class >>
parallelism: 1
steps:
- halt-if-skipped:
guard: << pipeline.parameters.run-driver-tests >>
- halt-unless-proxy-disabled-enabled:
disable-proxy: << parameters.disable-proxy >>
require-opt-in: << parameters.require-opt-in >>
- restore_cached_workspace
# this is a temporary work around while we wait for circle to resolve issues with packages
# with an @ character in windows during save_cache.
Expand Down Expand Up @@ -2769,6 +2780,10 @@ jobs:
description: run with the MITM proxy disabled (CDP Fetch network interception path)
type: boolean
default: false
require-opt-in:
description: when disable-proxy is true, halt unless run-proxy-disabled-tests=true
type: boolean
default: true
parallelism: 5
resource_class: medium+.gen2
steps:
Expand All @@ -2777,6 +2792,7 @@ jobs:
install-chrome-channel: stable
inject-document-domain: true
disable-proxy: << parameters.disable-proxy >>
require-opt-in: << parameters.require-opt-in >>
guard: << pipeline.parameters.run-driver-tests >>

driver-integration-tests-chrome-beta:
Expand Down
99 changes: 10 additions & 89 deletions .circleci/src/pipeline/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -276,116 +276,40 @@ jobs:
requires:
- system-tests-node-modules-install

# Proxy-disabled CDP remediations (*-cdp-remediated): known-green subsets that
# always run when their path filters match (require-opt-in: false). Append
# specs here as fixes land. When a remediations list covers the full suite,
# flip the matching *-cdp job to always-on and delete *-cdp-remediated.
# Electron has no *-cdp job: it is deprecated as a test browser and stays on
# the HTTP/1 proxy.
# bugbash/cdp-full-suite: *-cdp-remediated jobs disabled; full *-cdp suites
# always-on (require-opt-in: false). Restore remediations before merging.
# #34464 cookie coverage that stays green under DISABLE_PROXY is jar sync +
# OAuth only (system-tests-cookies-cdp). The full e2e cookies 80/443 matrix
# is deferred to #34508 (under #34353).
- system-tests-chrome:
name: system-tests-chrome-cdp-remediated
context: test-runner:performance-tracking
disable-proxy: true
require-opt-in: false
parallelism: 1
# #34351 upstream HTTP_PROXY/NO_PROXY; #34271 strategy:file downloads; #34467 continue unmodified CDP Fetch responses;
# #34514 strategy:file origin serving + #34379 intercept-matched visit pre-flights (visits, web security, service workers).
# #34563 graphql-ws upgrades target the Cypress server origin (request_spec); non_proxied_spec asserts proxy
# semantics that do not exist here and skips itself.
# #34470 skip the eager CDP Fetch body read for stream-shaped responses (SSE).
# proxy_correlation_spec omitted: Chrome CI flakes on CorrelateBrowserPreRequest timeouts under
# concurrent large-body CDP Fetch (47 unmatched localhost requests).
spec: test/network_error_handling_spec.js test/downloads_spec.ts test/proxying_spec.ts test/images_spec.js test/form_submissions_spec.js test/page_loading_spec.js test/interception_spec.js test/cache_spec.js test/base_url_spec.js test/visit_spec.js test/web_security_spec.js test/service_worker_spec.js test/service_worker_protocol_spec.js test/request_spec.ts test/non_proxied_spec.ts test/server_sent_events_spec.js
requires:
- system-tests-node-modules-install
- system-tests-cookies-cdp:
context: test-runner:performance-tracking
requires:
- system-tests-node-modules-install
- run-launchpad-integration-tests-chrome:
name: run-launchpad-integration-tests-chrome-cdp-remediated
context:
[
test-runner:cypress-record-key,
test-runner:launchpad-tests,
test-runner:percy
]
disable-proxy: true
require-opt-in: false
parallelism: 1
record-group-suffix: '-remediated'
# #34353 Invalid InterceptionId body-stream crash
spec: cypress/e2e/choose-a-browser.cy.ts,cypress/e2e/open-mode.cy.ts
requires:
- ready-to-test
- run-app-integration-tests-chrome:
name: run-app-integration-tests-chrome-cdp-remediated
context:
[
test-runner:cypress-record-key,
test-runner:launchpad-tests,
test-runner:percy
]
disable-proxy: true
require-opt-in: false
parallelism: 1
record-group-suffix: '-remediated'
# #34561 cypress-in-cypress specs: exercise the spec-transition teardown that
# wedged on a zombie (disconnected-but-not-terminated) CDP connection when the
# proxy is disabled.
# #34603 debug + banner: window:before:load flag delivery and cy.intercept
# visibility of inner-app graphql through the cy-in-cy internal-route release;
# the uncaught-errors specs pin the release's injection boundary (the parent
# must never partial-inject inner-owned frames).
spec: cypress/e2e/cypress-in-cypress.cy.ts,cypress/e2e/cypress-in-cypress-e2e.cy.ts,cypress/e2e/cypress-in-cypress-run-mode.cy.ts,cypress/e2e/cypress-in-cypress-component.cy.ts,cypress/e2e/debug.cy.ts,cypress/e2e/cloud_message_banner.cy.ts,cypress/e2e/runner/reporter-ct-webpack.uncaught-errors.cy.ts,cypress/e2e/runner/reporter-ct-vite.uncaught-errors.cy.ts
requires:
- ready-to-test
- driver-integration-tests-chrome:
name: driver-integration-tests-chrome-cdp-remediated
context: test-runner:cypress-record-key
disable-proxy: true
require-opt-in: false
parallelism: 1
record-group-suffix: '-remediated'
# #34467 continue unmodified CDP Fetch responses; #34465 extra-target shared
# middleware; #34512 extra-target Network.enable hang (downloads_basic_auth);
# #34557 encoding drifts pinned per-pipeline (#34554, #34384, #34386);
# #34555 service worker session interception; #34562 synthetic request query +
# httpVersion drift; #34559 cloud-bundle loopback routes.
# #34616 net_stubbing: the cy.intercept contract on this transport, including
# the drifts pinned by #34611 — the three contract violations it now guards
# went unnoticed because this spec had never run in a gating job.
spec: cypress/e2e/e2e/security.cy.js,cypress/e2e/e2e/redirects.cy.js,cypress/e2e/cy/snapshot.cy.js,cypress/e2e/issues/3890.cy.js,cypress/e2e/cypress/downloads.cy.ts,cypress/e2e/cypress/downloads_basic_auth.cy.ts,cypress/e2e/e2e/encoding.cy.ts,cypress/e2e/e2e/service-worker.cy.js,cypress/e2e/cypress/proxy-logging.cy.ts,cypress/e2e/commands/prompt/prompt.cy.ts,cypress/e2e/commands/net_stubbing.cy.ts
requires:
- ready-to-test
- unit-tests-proxy-disabled:
requires:
- ready-to-test

# Full proxy-disabled (CDP Fetch) coverage (*-cdp) — off by default.
# Enable with Trigger Pipeline → run-proxy-disabled-tests=true.
# Omitted from all-jobs-passed so failures stay non-blocking when enabled.
# Promote known-green specs into *-cdp-remediated above rather than flipping
# these full suites on until remediations cover the entire suite.
# Full proxy-disabled (CDP Fetch) coverage (*-cdp) — always-on for this bugbash.
# Omitted from all-jobs-passed so failures stay non-blocking.
- driver-integration-tests-chrome:
name: driver-integration-tests-chrome-cdp
context: test-runner:cypress-record-key
disable-proxy: true
require-opt-in: false
requires:
- ready-to-test
- driver-integration-tests-chrome-inject-document-domain:
name: driver-integration-tests-chrome-inject-document-domain-cdp
context: test-runner:cypress-record-key
disable-proxy: true
require-opt-in: false
requires:
- ready-to-test
- system-tests-chrome:
name: system-tests-chrome-cdp
context: test-runner:performance-tracking
disable-proxy: true
require-opt-in: false
requires:
- system-tests-node-modules-install
- run-app-integration-tests-chrome:
Expand All @@ -397,6 +321,7 @@ jobs:
test-runner:percy
]
disable-proxy: true
require-opt-in: false
requires:
- ready-to-test
- run-launchpad-integration-tests-chrome:
Expand All @@ -408,6 +333,7 @@ jobs:
test-runner:percy
]
disable-proxy: true
require-opt-in: false
requires:
- ready-to-test

Expand Down Expand Up @@ -517,8 +443,7 @@ jobs:
# Fan-in aggregator — the only required GitHub status check for PRs.
# Required jobs fan into this one. Jobs that halt early (pipeline parameter
# false) still complete successfully. Full proxy-disabled *-cdp jobs above are
# opt-in (run-proxy-disabled-tests) and intentionally omitted from this gate;
# *-cdp-remediated known-green subsets are included.
# always-on for this bugbash but intentionally omitted from this gate.
- all-jobs-passed:
requires:
# Always-run jobs
Expand All @@ -540,12 +465,8 @@ jobs:
- system-tests-webkit
- system-tests-non-root
- h2-dual-stack-tests
- system-tests-chrome-cdp-remediated
- system-tests-cookies-cdp
- unit-tests-proxy-disabled
- run-launchpad-integration-tests-chrome-cdp-remediated
- run-app-integration-tests-chrome-cdp-remediated
- driver-integration-tests-chrome-cdp-remediated
- driver-integration-tests-chrome
- driver-integration-tests-chrome-inject-document-domain
- driver-integration-tests-chrome-beta
Expand Down
Loading