Closes Mesa/GLX related warnings shown when running Cypress #29521
The primary Cypress process can emit benign warnings related to Mesa/GLX when running in certain Linux environments or containers. These warnings are related to graphics drivers and X11 display settings, but are not necessary for Cypress to execute correctly. This PR suppresses these warnings from stdout, similar to other benign Electron warnings:
- `error: XDG_RUNTIME_DIR is invalid or not set in the environment.`
- `MESA: error: ZINK: failed to choose pdev`
- `glx: failed to create drisw screen`
1. Execute Cypress tests in run mode on a Linux machine or container with minimal graphics drivers installed
2. Execute Cypress tests in run mode in a Docker container using a basic Linux image (e.g. ubuntu:latest)
3. Verify the suppressed warnings no longer appear in the terminal output
Users will no longer see benign graphics-related warnings in their terminal output when running Cypress in Linux environments with minimal graphics support. This reduces noise in the terminal output while not affecting any actual test functionality.
- [x] Have tests been added/updated?
- [NA] Has a PR for user-facing changes been opened in cypress-documentation?
- [NA] Have API changes been updated in the type definitions?
fix linting
change word for CI
Update cli/CHANGELOG.md
Going with the suggesting.
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
fix linting
update readme with another fixed issue
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* misc: replace marionette-client with geckodriver as b2g marionette client is no longer supported [run ci]
* install pump [run ci]
* refactor to have geckodriver launch the browser and split out webdriver to own class [run ci]
fix other failing tests [run ci]
fix other failing tests [run ci]
pass env variables to firefox
* fix sigkill / treekill issues on windows with firefox binary being a dangling process [run ci]
* fix issue where browser in headed mode was not starting maximized [run ci]
* stub firefox_spec added deps different to get type inference
* add comment to geckodriver patch
* move capabilities to verbose debug statement
* update changelog
* address comments from code review
* add pending for changelog
* update with suggestions from code review
* remove debug enable as the process needs to be bound to stderr and stdout
* add comment on why we need to bind
* add comments from code review
* address comments from code review
* make sure sessionId is set
* misc: allow HiDPI Screen running wayland to use cypress window/browser
* Added changelog entry
* Fix changelog entry release date to pending
* Changed release changelog entry to actual date
* Added issue number to the changelog entry
* fix tests
* update changelog
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* chore: [run ci] does further prerequisites for webpack 5:
https://webpack.js.org/migrate/5/#make-sure-your-build-has-no-errors-or-warningshttps://webpack.js.org/migrate/5/#make-sure-to-use-modehttps://webpack.js.org/migrate/5/#update-outdated-optionshttps://webpack.js.org/migrate/5/#test-webpack-5-compatibility
app builds and runs locally. Time to test out in CI and see if buffer or
process need to be polyfilled by the build
* chore: upgrade to webpack 5 and do the bare minimum to get it working
* chore: get @packages/extension working
* chore: add TODOs to finish after webpack 5 update
* chore: update the webpack config for npm/webpack-batteries-included-preprocessor to be webpack 5 compliant
* chore: patch whatwg-url 7.1.0. package 'source-map' uses
whatwg-url@7.1.0 which has a dependency on punycode node expected API.
since punycode is now polyfilled for us implicitly via the punycode npm
package, the API signatures are a bit different
https://github.com/mathiasbynens/punycode.js/blob/main/punycode.js#L101
vs https://nodejs.org/api/punycode.html#punycodeucs2. The patch uses the
punycode npm package expected API and is needed for source maps to work
for cy.origin() dependencies for Cypress.require()
* chore: convert whatwg patch into dev patch as source-map is not installed when building the binary / installing prod dependencies
* chore: only move production level patches into the binary dist directory for yarn install --production
* chore: remove --openssl-legacy-provider code for node versions 17 and over as webpack has been updated to v5
* chore: fix the webpack-batteries-included-preprocessor tests by shimming the correct node globals and built ins
* chore: provide the define plugin and evalDevtoolPlugin again as we need define in order to build the react-dom library correctly in the bundle to not include the development version
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* chore: fix the webpack preprocessor not to change promise references under the hood when compiling the first bundle, as it was causing the webpack preprocessor to hang as the reference itself was different
* chore: fix issues from readFile that were caused by Webpack 5 using 'path-browserify'
* chore: update chrome component testing snapshots to match Webpack 5 changes
* chore: fix mismatched snapshots from webpack 5 update
* chore: use Cypress.Buffer instead of Buffer for selectFile system test to avoid having to polyfill Buffer from webpack
* chore: fix system test webpack path that now includes e2e workspace
* chore: patch enhanced-resolve to properly discover the pnp api for the yarn_v3.1.1_pnp_spec.ts system test. see https://github.com/webpack/enhanced-resolve/issues/263 for more details
* chore: set stats to 'none' for experimentalSingleTabMode to prevent different webpack compiled terminal formatting in the snapshot between local and CI.
* chore: fix node built in tests and configure webpack-batteries-included-preprocessor correctly
* chore: fallback to buffer correctly in config, even though there is no impact due to the provide plugin
* Update binary-cleanup.js to exclude added build dependencies for webpack
5 added by webpack-terser-plugin under the hood
* chore: add stream-browserify to webpack preprocessor batteries included as a dep as its used in the config [run ci]
* chore: make sure process and buffer are installed in the CLI for webpack provide
* chore: build cross platform binaries [run ci]
* chore: fix webpack evalDevToolPlugin instantiation [run ci]
* run all binary jobs [run ci]
* chore: updating v8 snapshot cache
* add find-up to the entry points that need to be kept
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* chore: fix mocha build warnings
* chore: fix STRIPPED_INTEGRITY_TAG import warnings
* chore: add changelog event
---------
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* fix: get correct env from npm config
`npm config set VAR VAL` will inject `npm_config_var=val` environment
variable. This commit will solve this issue
Closes: #24556
* Disable commercial recommendations for system tests.
* Disable commercial recommendations
* Update system-tests/lib/system-tests.ts
* Revert changes
* Update cli/test/lib/util_spec.js
* Update cli/test/lib/util_spec.js
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
* Trying out electron 19.0.4
* nvm-for-windows 1.1.7 is busted for node-16.14.2
* Went a bit overboard with the exit I think
* Stepping this back
* Breaking out yarn install
* Print runtime data
* log more data points
* well i'm confused. seeing what happens after these steps
* Lets see if powershell picks up the new PATH
* Maybe shell is refreshed between jobs?
* Installing nvm-1.1.9 manually
* Cleaning up circle.yml and a few other node references.
* Yeah that ain't gonna work
* Trying bash implementation
* Urgh yaml
* Bumping to latest patch version
* Getting a full build + artifacts
* Sourcing node in build step
* More node sourcing
* Run against updated recipes repo
* I'll find all these eventually
* Trigger new build after cache busting
* Let's slim this down to test recipes for a bit
* Good ol' working_directory
* Fixing bad syntax
* Not quite sure where all this is necessary at this point
* Using recipes PR branch
* This isn't necessary here
* Re-enabling jobs
* More node sourcing
* Running kitchensink tests against PR branch
* Moving nvm-windows update to script
* Even more node sourcing
* Removing CI config for merged kitchensink/recipes PRs
* chore: Updating electron to v18 + node v16.13.2
* Updating origin test, it needs to be fixed a different way
* Removing origin workaround for config_env specs, it should not be necessary.
* Removing now-unused semver dependency
* refactor: break pathTemplate replace logic into multiple lines
* feat: support escape dollar sign in download path template
* feat: support CYPRESS_DOWNLOAD_PATH_TEMPLATE wrapped in quote
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>