Commit Graph

89 Commits

Author SHA1 Message Date
Zach Bloomquist 209efa433d fix: use process.geteuid and catch uid errors in file util (#17488)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2021-07-30 16:05:17 +00:00
Kukhyeon Heo 8e0e3c1b50 chore: update extract-zip to 2.0.1 (#16544) 2021-05-17 20:11:05 +00:00
Minijus L 6bc7e7da0f fix: use 'ca' and 'cafile' npm config options for binary download (#8877)
Co-authored-by: Zach Bloomquist <github@chary.us>
2021-05-10 22:14:54 +00:00
Zach Bloomquist 09afc48e14 fix(cli): use per-pid filename for downloaded cypress zip (#14952) 2021-02-09 15:02:37 +00:00
Jennifer Shehane d1d15e6cfe chore: Replace usage of moment in cli / server code (#9069) 2021-01-26 13:49:21 +06:30
Jennifer Shehane bb0d98d3c6 Merge branch 'develop' into v6.0-release 2020-11-17 22:38:39 +06:30
Gleb Bahmutov 84d1afd27d feat: print bundled Node and Electron versions in cypress version (#9183) 2020-11-16 13:17:24 -05:00
Jennifer Shehane 3a8d9e62d4 chore: Remove code around deprecated APIs (#8951) 2020-10-27 00:45:19 +06:30
Greg Lahaye b56c8c8688 feat: add cache prune command (#8766)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-10-09 15:14:19 -04:00
Kukhyeon Heo aa4772c4cf feat: Print folder sizes with cypress cache list command. (#8590) 2020-10-05 11:31:59 -04:00
Zach Bloomquist fe4e11ec6e feat(cli): install pre-release binaries by computing binary URL from NPM URL (#8483) 2020-09-08 17:44:37 -04:00
Gleb Bahmutov 3b6514399d Do not silence cli commands (#6909)
* always log cache path

* cache list always logs

* cypress version should always log result
2020-04-01 11:44:27 -04:00
Gleb Bahmutov 2a0bc32700 cypress cache list prints last accessed date (#6627)
* get last access timestamps and print with cache versions

* remove done TODO

* start trying to save HTML but only after snapshot text is confirmed

* store cli test output HTML as static pages

* set our color for table heading

* make code readable

* lock file again

* update saved HTML file

* refactor cache spec

* add test with no access time:
2020-03-09 09:27:54 -04:00
renovate[bot] eab801ae3f chore(deps): Update dependency eslint to version 6.8.0 🌟 (#6509)
* chore(deps): Update eslint to 6.8.0 🌟

* fix missing dangling commas for linter

* fix missing dangling commas for linter

* more lint fixes

* yarn lock

Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-25 00:09:47 +06:30
Chris Breiding c491a3eda5 Merge branch 'develop' into v4.0-release 2020-01-29 12:47:11 -05:00
Gleb Bahmutov e389db4089 Move binary state file to be in the version folder of the cache (#6090)
* WIP: small refactoring for clarity

* move binary state file to version dir

* add issue link
2020-01-06 16:32:03 -05:00
Zach Bloomquist b130ffca87 Prevent Cypress from showing 200% unzip progress (#6009)
* Prevent unzipWithNode from getting called twice

* fix unzip test

* add unit test to check if unzip is called once

* add unzip test for Darwin

Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2019-12-26 12:37:09 -05:00
Chris Breiding f2600b5e35 Merge branch 'develop' into v4.0-release 2019-12-09 13:46:05 -05:00
Zach Bloomquist 02515fec61 cli: unnzip Cypress using unzip utility on Linux (#5851)
* unzip using 'unzip' utility on linux

* add example unzip test
2019-12-03 09:19:12 -05:00
Jennifer Shehane 299f0dfd24 Remove support for Node 6 (#5632)
* Bump required node version of cli to 8.0.0+

* Bump chalk to 3.0.0

- previously required Node 8 support

* bump debug to 4.1.1

- Drops Node 4 support, adds Node 10 support
- They  mentioned no breaking changes, so we’ll see.

* bump is-ci to 2.0.0

- removes Node end of lives
- supports more CIs for detection

* bump is-installed-globally

- drops support for Node 6 + improvements on detection

* bump log-symbols dep

- requires Node 8

* bump supports-color

- Requires Node 8

* bump untildify - require Node 8

* bump commander to 4.0.1

- require Node 8
- may break some snapshots - they changed some quotes like 'this'
instead of `this'

* bump execa to 3.3.0

- removes Node 6 support
- some breaking changes, but I didn’t find us using any of them on
first pass.

* bump cachedir

* bump fs-extra

Drops various node version support including 6

* bump bluebird

* bump ramda
2019-11-26 21:28:24 +06:30
Gleb Bahmutov fcc252e94d Always use --no-sandbox with Electron on non-Windows system (#5458)
* WIP: add failing test job with non-root user

* change paths to node user

* print more info

* always use --no-sandbox when starting Electron on non-Windows OS

* add another test job that runs as a root

* use tilda

* use 12.0.0 image

* rename job
2019-10-25 10:54:03 -04:00
Gleb Bahmutov dd70563809 cli: detect installing from postinstall hook (#5407)
* cli: detect installing from postinstall hook

* add unit tests
2019-10-22 11:56:52 -04:00
Gleb Bahmutov 128d4392ae parse ~ in CYPRESS_CACHE_FOLDER env variable (#5393)
* parse ~ in CYPRESS_CACHE_FOLDER env variable

* linting
2019-10-17 11:47:29 -04:00
Ben Kucera 653f52dc3c upgrade eslint-plugin-dev to 5.0.0 (#5382)
* upgrade eslint-plugin-dev to 5.0.0

* more [lint fixes]
2019-10-17 11:40:53 -04:00
Zach Bloomquist 7c68c41e88 add --no-sandbox to smoke test (#5196)
* add --no-sandbox to smoke test

* Update verify.js

* appease linter [build binary]

* Update verify_spec.js

* [build binary]

* add test [build binary]

* Update verify_spec.js

* Update verify_spec.js

* update unit test
2019-09-24 21:49:38 -04:00
Gleb Bahmutov 11784c3af2 CLI: increase smoke test timeout to 30s (#4859)
* CLI: increase smoke test timeout to 30s

* hmm install reformarrted some files

* remove formatting changes

* update unit test

* add small test to confirm timeout property

* revert example changes
2019-07-29 12:59:12 -04:00
Zach Bloomquist 79c7a6c36a Mention HTTP_PROXY if download error occurs; fall back to NPM's… (#4705)
* Mention HTTP_PROXY if download error occurs; fall back to NPM's proxy config in install

* better debug logs

* snap-shot-it@7.7.1 -> 7.8.0

* respect npm_config in server, add debug logs for proxy
2019-07-15 15:21:48 -04:00
Ben Kucera fbd523615e [internal] Lint typescript, json, new eslint rules (#4449)
* temp 07/01/19 [skip ci] main lint files

* use lint-staged scripts

* fix all auto-fixable eslint errors

* manually fix lint issues in files

* temp 07/01/19 [skip ci]

* bump eslint plugin versions, update circle.yml

* [lint fix] remaining js files

* update vscode/settings.json

* add back stop-only

* use stop-only for linting .onlys

* fix verify_spec, build_spec

* update json plugin

* relint & apply corrections

* fix appveyor.yml not cleansing env vars (very bad)

* dont echo commit message in appveyor script

* retry build &

* re-add & upgrade lint-staged

* update contributing docs

* only let stop-only catch staged changes
2019-07-12 13:59:44 -04:00
Gleb Bahmutov c57d302176 Verify downloaded test runner zip file 812 (#4193)
* if download has checksum use it to verify downloaded file

* check only filesize if no checksum available

* add download tests

* move checksum into util for reuse, be explicit

* add comments explaining headers used to verify checksum

* move hasha to dev dependency

* remove unnecessary function

* do not use deprecated Promise.join with spread

* fix promise join callback

* linting
2019-07-09 14:03:00 -04:00
Gleb Bahmutov db62738209 Clean env variable CYPRESS_INSTALL_BINARY before checking (#4579)
* fix: trim and remove double quotes around CYPRESS_INSTALL_BINARY

* linting

* add one more unit test for dequote

* add one more unit test

* fix jsdoc

* a few more edge unit tests
2019-07-08 13:41:44 -04:00
Brian Mann 6850e68b48 do not mutate process.env when verifying (#4281) 2019-05-22 17:12:13 -04:00
Jennifer Shehane cacd122c67 Fix mixed use of both XVFB and Xvfb to all be Xvfb (#4262) 2019-05-21 10:33:59 -04:00
Brian Mann 77c62e010b improve CLI verify + run display warnings (#4230)
* tighten up potential xvfb display problems

- improve the warning message on possible display problems
- reuse existing helper functions for platform detection
- instead of relying on timing mechanisms, if a possible display
problem is detected on linux - capture all of the stderr silently and
if the broken gtk message is detected, retry running

* consolidated and simplified smoke testing, xvfb error logging and messaging

- added —dev support to cypress verify cli command

* fix lots of tests, restore one error message

* fixed remaining CLI tests

* console.log pong only in electron mode

* remove dead code
2019-05-17 09:12:03 -04:00
Gleb Bahmutov ebb8afdff4 logger warn from CLI should strip all indent from nested message (#4188) 2019-05-13 18:27:26 -04:00
Gleb Bahmutov d25cfacc6f Automatically retry verify and run commands on Linux if suspect DISPLAY problem (#4165)
* cli: debug explanation for XVFB

* linting

* add chai-as-promised to CLI dev

* show Linux specific error solution if cannot verify

* add todo

* chore: consolidate github issue url logic

* linting

* add npm script lint-changed to quickly eslint fix changes JS files

* retry verify with our XVFB

* update errors and tests

* update CLI tests

* add test for display error message

* fix unit test

* add successful test with retry

* finish verify retry test

* warn users if hit display problem on first verify

* try to detect display problem when running electron and retry with our xvfb

* add warning message to spawn when attempting xvfb re-run

* add test for display retry behavior on spawn

* more comments for clarity

* fix typo
2019-05-13 15:19:53 -04:00
Ben Kucera 1f0071002b Add timeout for cli/verify smoke test (#4080)
* temp 04/29/19 [skip ci] cli verify timeout

* add smoke test timeout error and tests

* cleanup code

* normalize snapshots for ci

* remove promise cancellation config

* cleanup error messaging and spacing for displaying the error details + descriptions


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-05-02 15:20:58 -04:00
Ben Kucera 5f771936e3 Fix flaky cli unit test (#3988)
* fix cli unit tests with mockfs

* mockfs fix flaky verify_spec
2019-04-17 19:10:48 -04:00
Lila Conlee 255419c686 Update alias UI (#2960) (#3188)
* Update alias UI (#2960)

- Fixes #477

* fix reporter fixture name
2019-04-10 15:22:55 -04:00
Zach Bloomquist cd4156f166 Remove @cypress/get-windows-proxy from CLI (#3898) 2019-04-06 17:13:38 -04:00
Zach Bloomquist c1a345dce2 Improved proxy support (#3531)
* https-proxy: unused file

* server: wrap all https requests that use a proxy

* server: use request lib in ensureUrl if proxy is in use. this makes runs tab work behind a proxy

* electron: pass --proxy-server to app itself, so the embedded github login page works

* cli: first attempt at env vars from windows registry

* cli: api cleanup

* cli: lint

* cli: fix crash on no proxy, add tests

* add desktop-gui watch to terminals.json

* cli: pass along --proxy-source

* electron: pass --proxy-bypass-list too

* server: whitelist proxy* args

* cli: better wording

* desktop-gui: display proxy settings

* extension: force proxy [wip]

* extension: finally, i am victorious over coffeescript

* extension: add -loopback to bypasslist

* extension: revert changes

Revert "extension: force proxy [wip]"

This reverts commit 3ab6ba42a763f25ee65f12eb8b79eb597efc9b11.

* desktop-gui: skip proxysettings if there aren't any

* https-proxy, server: proxy directConnections using https-proxy-agent

* https-agent: pool httpsAgents

* https-proxy: work when they're not on a proxy

* https-proxy: ci - use agent 1.0

* https-proxy: tests

* desktop-gui: hide proxy settings when not using proxy

* https-proxy: pass req through to https-proxy-agent callback

* cli: use get-windows-proxy

* desktop-gui: always show proxy settings

* server: use get-windows-proxy

* electron, server: supply electron proxy config when window launched

* server: fix

* https-proxy: cleanup

* server: clean up ensureUrl

* https-proxy: cleanup

* cli: fix

* cli: fix destructuring

* server: enable ForeverAgent to pool HTTPS/HTTP connections

#3192

* server: updating snapshot

* https-proxy: don't crash, do error if proxy unreachable

* https-proxy:

* get-windows-proxy@1.0.0

* https-proxy: use proxy-from-env to decide on a proxy for a url

* server: fallback to HTTP_PROXY globally if HTTPS_PROXY not set

* server: proxy args test

* cli: add proxy tests

* cli: add test that loadSystemProxySettings is called during download

* cli, server: account for the fact that CI has some proxy vars set

* https-proxy: ""

* cli, https-proxy, server: ""

* desktop-gui: update settings gui

* desktop-gui: cypress tests for proxy settings

* server: strict undefined check

* cli, server: move get-windows-proxy to scope, optionalDeps

* server, cli: use new and improved get-windows-proxy

* cli, server: 1.5.0

* server: re-check for proxy since cli may have failed to load the lib

* server, cli: 1.5.1

* server: NO_PROXY=localhost by default, clean up

* https-proxy: disable Nagle's on proxy sockets

\#3192

* https-proxy: use setNoDelay on upstream, cache https agent

* https-proxy: test basic auth

* https-proxy: add todo: remove this

* server: add custom HTTP(s) Agent implementation w keepalive, tunneling

* server: typescript for agent

* add ts to zunder

* server: more ts

* ts: add missing Agent type declaration

* server: create CombinedAgent

* server: use agent in more places

* ts: more declarations

* server: make script work even if debug port not supplied

* server: begin some testing

* server, ts: agent, tests

* server: test

* server: agent works with websockets now

* server: update snapshot

* server: work out some more bugs with websockets

* server: more websockets

* server: add net_profiler

* https-proxy: fix dangling socket on direct connection

* server: fix potential 'headers have already been sent'

* https-proxy: nab another dangler

* server: update test to expect agent

* https-proxy: fix failing test

* desktop-gui: change on-link

* server: add tests for empty response case

* server: tests

* server: send keep-alive with requests

* server: make net profiler hook on socket.connect

* server: only hook profiler once

* server: update tests, add keep-alive test

* server: only regen headers if needed

* server: move http_overrides into CombinedAgent, make it proxy-proof

for #112

* server: update snapshot

* server: undo

* server: avoid circular dependency

* https-proxy, server: use our Agent instead of https-proxy-agent

* server: add dependency back

* cli: actually use proxy for download

* server, launcher, ts: typescript

* Revert "server, launcher, ts: typescript"

This reverts commit d3f8b8bbb6.

* Revert "Revert "server, launcher, ts: typescript""

This reverts commit 818dfdfd00.

* ts, server: respond to PR

* server, ts: types

* ts: really fix types

* https-proxy, server: export CA from https-proxy

* agent, server, https-proxy: move agent to own package

* agent => networking, move connect into networking

* fix tests

* fix test

* networking: respond to PR changes, add more unit tests

* rename ctx

* networking, ts: add more tests

* server: add ensureUrl tests

* https-proxy: remove https-proxy-agent

* server: use CombinedAgent for API

* server: updates

* add proxy performance tests

* add perf tests to workflow

* circle

* run perf tests with --no-sandbox

* networking, ts: ch-ch-ch-ch-changes

* server, networking: pr changes

* run networking tests in circle

* server: fix performance test

* https-proxy: test that sockets are being closed

* https-proxy: write, not emit

* networking: fix test

* networking: bubble err in connect

* networking: style

* networking: clean p connect error handling

* networking => network

* server: make perf tests really work

* server: really report

* server: use args from browser

* server: use AI to determine max run time

* server: load electron only when needed


Co-authored-by: Brian Mann <brian@cypress.io>
2019-03-31 23:39:10 -04:00
Gleb Bahmutov e0042a2009 Upgrade snap shot it to v6 in CLI package (#3761)
* update cli_spec

* linting

* update named snapshot to have 1 to match snap-shot-it v5

* update errors spec

* linting

* update snapshot use in download_spec

* update install_spec snapshot

* linting

* update use of snapshot in unzip_spec

* update snapshot use in verify_spec

* enable all CLI specs

* no need to skip snapshot sorting

* upgrade snap-shot-it to v6 in root

* update snap-shot-it to v6 in packages/server

* need to add build script to transpile

* update cypress_spec snapshot use with names
2019-03-21 10:39:28 -04:00
Gleb Bahmutov 1a7f631032 Reject promise stub with an error instance (#3751)
* reject promise stub with Error instance

* pass linter
2019-03-20 09:47:13 -04:00
Ben Kucera ef8b240bc0 improve cache help messages snapshot more (#2625)
* snapshot more, remove execa in tests for speed

* sub-command -> command, add snapshot

* restate execa
2019-01-25 00:34:58 -05:00
Ben Kucera 0ffa701bdb update cypress install message (#2755)
fix #2754
2018-12-25 23:00:17 -08:00
Mathias Geat b6519258d2 Introduce CYPRESS_DOWNLOAD_BASE_URL to specify a base download url (#2609)
* Introduce CYPRESS_DOWNLOAD_BASE_URL to specify a base download url instead of download.cypress.io

* rename to CYPRESS_DOWNLOAD_MIRROR

* update spec_helper
2018-11-01 10:33:48 -04:00
Ben Kucera f90bfbec90 update ci error msg (#1928) 2018-06-20 00:14:15 -04:00
Ben Kucera db4a4a6d22 Improve Error logging around Cypress verify (#1986)
close #1984 improve error logging for `cypress verify`
close #1985 remove "skipping install" message to local users, keep in CI
2018-06-19 21:52:25 -04:00
Ben Kucera 5a4b2a4a0a allow relative paths in CYPRESS_* env vars (#1989) 2018-06-19 17:34:51 -04:00
Ben Kucera 56e00981aa cache commands, --no-exit (#1875)
* add --no-exit, cache commands

* Manage -> Manages

* fix run, run spec

* remove comments
2018-06-05 16:19:23 -04:00
Ben Kucera ca9cb8f10b env vars from configs, respect loglevel from npm (#1855) 2018-06-05 15:14:51 -04:00