* 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
* WIP: post install message on commit
* linting
* finish message contents
* linting
* fix npm and binary, circleci name
* comment on CI build on AppVeyor
* remove extra build branches
* add chrome policy check that is logged to stdout/displayed in GUI
* improve warning message
* add desktop-gui warning when launching browser
* update tests
* clean up adding warnings to browsers in the gui
* support multiple warnings in gui
* update on-link
* don't show warning in open mode
* add test for warning getting attached, add hyperlink to warning tooltip
* render tooltip warnings with markdown
* pass NO_CHECK_DEPS=1 to skip dep check
* @cypress/react-tooltip@0.5.0 - adds clickability to tooltips
* add link to issue
* dont need to update reporter and runner
* use synchronous console.log, not async errors.log for displaying yellow warnings
* use trigger, do not build up events manually
/cc @flotwig
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* retry requests, basic e2e test
* basic e2e test for chrome behavior
* don't use timeouts to test
* some minor cleanup
* validate google chrome's retry behavior w/ a proxy
* get retries on network errors workin
* cleanup
* final changes before switching approach
* Reverting previous approach in request.coffee, server.coffee
* add retryOnNetworkFailure
* now works with retryOnStatusCodeFailure
* retry 4 times in addition to the 1 initial attempt
* add tests for subresources
* much improved error handling
* have the e2e test really work
* e2e baseurl check
* retry baseurl check
* remove special handling for node 8.2.1 bug
* WIP: continue making progress building out request retry
- swap out passthrough’s for pumpify / duplexify / pump
- clean up error handling / messaging / retry logic
* pipe clientrequest events
* buffer req body to disk, restore error handling/retrying
* don't bubble up errors from failed attempts
* actually pipe reqstream, oops
* add some e2e tests for request body
* revert lib/request.coffee to 7be1051
* add almost-working lazy-stream
* manually fire the 'pipe' event on the reqStream to copy headers to the outgoing message
- restore the ‘error’ propagation so that all tests pass for now
* cleanup leaking 'undefined' into stdout, causing failing e2e tests
- do not set onWarning as a property of project, just pass as an
argument
* add new options to request_spec, deduplicate default opts
* use stream buffer in request.coffee
* revert request.coffee
* last stream_buffer changes before removing fs stuff
* remove fs stuff from stream_buffer, add stream piping tests
* it works! :tada::tada:🎉 using duplexify to separate delayStream and reqBodyBuffer
* retry for .5s max on ECONNREFUSED
* add error codes
* don't timeout proxied requests
* restore baseurl check
* update new e2e tests
* make delay work with rp
* propagate clientresponse events
* removing tests that don't do anything now that we don't ESOCKETTIMEOUT on proxied requests
* add new visit, req options to index.d.ts
* don't fail on server-performance-test
* make retries with status code work again
* account for different stack trace in ci
* fix test
* retry https requests
* add tests for https passthru retries working
* clean up error handling for https-proxy
* fix failing https-proxy tests, tweak agent error handling to prevent multiple callbacks
* make expectedExitCode actual vs. expected in the correct order
* bump up e2e test timeout so it can retry and still work
* update tests
* retry up to 500ms on proxied requests
* add tests for incompatible options errors
* remove .only
* maybe this will help it act more consistently
* help e2e test work in ci
* don't reconnect on already made connections
* clarify naming
* wip: testing https proxy
* better debug calls
* WIP: getting proxy passthrough retry tests going
* handle retrying upstream proxy errors
- add tests for successfully retrying proxy errors and for unsuccessful
retries
- fix onClose errors when proxy connection is closed before enough data
is received
- fix not returning setTimeout correctly
* group related code accordingly
* do not build typescript by default, drop extension from main
* more TODO notes
* don't set a default NO_PROXY if NO_PROXY = ''
* debugging-proxy@2.0.0
* null out reqBodyBuffer when req finishes
* wip: retry in agent, not https-proxy [skip-ci]
* update https-proxy to use @packages/network retries
* retry after connection but before proxy tunnel established
* appease my linty overlords
* update https-proxy tests
* update agent specs, decided to still use tls.connect
it's easier to test and has less complexity
* test retrying HTTPS passthru
* debugging-proxy@2.0.1
* increase defaultCommandTimeout 100 -> 200 to prevent flake in CI
* auto formatting
* fix test to be dynamic and not rely on magic constants
* copy types field when linking proxy images, update packages/network types field
* linting
* add network index.js file
* linting
* improve error messaging experience when verifying base url
* only insert 1 new line
* fix failing test not binding to localhost
* removed test that's covered by e2e specs
* remove dash in 're-try'
* some cleanup for readability
* use allocUnsafe per perf
* unset NO_PROXY with an empty string
* move retry ensuring the baseUrl into url, cleanup some imperative code
* if the head is already present during connect, make connection, else wait for first head bytes
* minor formatting, clarity around conditions, naming
* rename retryInterval -> retryIntervals
* set defaults for requests during creation for clarity
* rename send -> sendPromise to pair better with sendStream
* use retryIntervals instead of juggling MAX_REQUEST_RETRIES
- ensure debug messages are consistent between request streams +
promises
- set static constants
* DRY up status check + network failure + retry logic
- keeps the debug logic identical between promises + streams
- ensures all logic paths are also consistent
- consolidates the pop’ing of intervals in a single place
* find / replace fail
* derp
* make the logic actually correct, set intervals as cloned defaults for recursive lookup
* pass arg correctly
* reduce debugging noise, formatting
* rename intervals -> delaysRemaining for clarity
* added unit tests around getDelayForRetry
* set retryIntervals as default options correctly, add unit tests
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
* move s3 api helpers into own TS file
* add demo file
* add comments
* add method to set user metadata by copying it
* set checksum metadata on uploaded binary
* move checksum to the right upload file
* call the right method
* fix require from ts
* convert size to string
* needs extension
* test binary against other projects
* set checksums as headers during first upload
* Revert "set checksums as headers during first upload"
This reverts commit 2043d9ee1f.
* set ACL to public-read when setting metadata on binary
* linting
* pass content-type
* update scripts tests
* linting
* add --platformArch parameter
* adding S3 sdk
* test binary folder
* linting
* before searching for binary
* linting
* grab folders in the given S3 prefix
* grab folders in the given S3 prefix
* find the last build
* found last builds for commit
* refactoring
* add tests for upload dir name
* create destination zip filename
* copying S3 files
* move s3 helpers into own object, prepare for testing
* add realistic test
* linting
* chore: add documentation to DEPLOY.md file
* chore: add utility method to get konfig from scripts tests
Local scripts specs should be be caught by the changing current
directory when loading `konfig.coffee` (which loads `cwd.coffee`,
which changes the cwd to `packages/server`). This was throwing
snapshot tests into saving into a wrong folder until I have noticed
this and fixed in
[v8.0.3](https://github.com/bahmutov/snap-shot-core/releases/tag/v8.0.3)
* linting
* add more comments
* use 'platform-arch' naming scheme for downloads
* do full builds for this branch
* Revert "do full builds for this branch"
This reverts commit 6d539513e7.
* update wrong comments
* chore: test upload getCDN functions
* linting js
* unit test refactored manifest
* linting
* upgrade to electron 2.0.18 and node 8.9.3
* use cypress/browsers:node8.9.3-chrome73 docker image
* fix type_spec for chrome
* Revert "fix type_spec for chrome"
This reverts commit 7914f68142.
* fix driver specs for chrome
* update engines to 8.9.3
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* create status check after building binary
* rework status
* put platform first in the status check
* remove building this branch
* modify the status check context, misc cleanup
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* appveyor build for this branch
* don't force install ffmpeg on windows
don't force install ffmpeg on windows
* derp
* fix
* build in appveyor
* oops
* delete using del
* use RMDIR instead of DEL
* only build 32-bit
* build for x64 and x86 windows
* separate win32 and win64
* require lodash
* make electron arch configurable
* cross-compile 32, only run in 64-bit
* force install ffmpeg if necessary
* it's all win10 x64, but we can force it to build for ia32 in x32 mode
* add windows util
* who's idea was it to make whitespace meaningful?
* pass arch to npm install, pass arch to uploader
* add TARGET_PLATFORM
* fun fact: appveyor titlecases env var names
fun fact: appveyor titlecases env var names
* fix: pass args
* use process
* cli: use arch package to send arch to server
* pass TARGET_ARCH to all npm installs
* run-all
* always call getUploadNameByOs
* use the precise version of node, enable both x64 and ia32 arch
* quotes
* uh wat
* move console logs to script because windows
* add yet another env var to install the right node arch
* use x86, not x32
* give ia32 a try, why not
* use platform env again
* and also try x86 again
* remove notion of target_arch since we're using the right node version with arch set correctly
* more comprehensive checks to ensure the arch is correct
* simplify building the binary, do not accept arch as options
* build the binary and test it on this branch
* remove arch, ensure that process.env.Platform is set to x86
* do build the binary unless this is a forked PR
* attempt to verify that this is a 32bit or 64bit windows binary
* remove unused dep
* consolidate commands
* don't install packages in windows - just build the binary
- this avoids needing to reinstall all node_modules and build-js twice
* build the binary on more branches
* cd up appveyor
* ugh
* right logic for whether or not this is a forked PR
* remove unused deps
* fix undefined var
* platformArch
* set in options
* turns out we do have to npm install before building the binary
* options.platformArch
* comment out appveyor build 32bit/64bit verification temporarily
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* enable esModuleInterop and fix typescript errors
* set typescript as root dep, use bin-up for tsc
* fix network package deps, add typescript build process
* add packages/server build process for typescript
* fix launcher exports
* formatting
* build the binary in this branch
* server: import in a stubbable way
* launcher: import stuff so it can be stubbed
* network: make stuff stubbable
* clean up imports
* network: let evil dns override dns.lookup
Co-authored-by: Zach Bloomquist <github@chary.us>
* chore(deps): update nodemon to 1.18.10 🌟
* remove nodemon - this is no longer used
* update test for including devdeps to reference another dev dep that we use
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* try codesign on mac circle
* run mac code sign setup as sudo
* check env variables
* pass org context to command
* update shell command
* hmm does shell need to login
* add FASTLANE_LANE
* fix log messages in build
* DEBUG code sign
* try importing profile first
* use sign shell script inline
* exit if importing profile fails
* unlock keychain
* try creating custom keychain and using it
* more unlocking
* try using -T
* append new keychain to the list
* try mac executor 10.1.0
* skip node version check
* set keychain name to use for signing
* remove passing name of the keychain
* more comments
* use env variables directly to code sign on mac
* use electron-builder to sign mac app
* try disabling publishing by electron-builder
* try testing Mac binary against kitchensink
* wait on the right job
* run on mac-sign-2 branch
* remove buildkite pipeline
* remove old commands
* darwin platform
* workflows via templates
* inherit stdio when calling codesign
* build binary for this branch
* actually build an app, dah
* add note about code sign in PR
* remove FASTLANE env variable
* enable linux builds and remove current branch
* use arch when caching dependencies on Circle
* add mac job
* hmm, mac name
* executor name
* use circle v2.1
* circle 2.1 cannot have job names start with a digit
* hmm, separate mac workflow
* shared build job via executor
* allow Node version mismatch on CircleCI Mac build
* correct workflow names per os
* do not check TERM on darwin platform
* move terminal check into a node script
* lint on both mac and linux
* pass linter
* enable full linux workflow
* try building on mac
* use xcode with Node 8.x
* try mac 9.1.0
* xcode 9.0.1
* run prebuild serially
* add node sass rebuild to desktop gui
* build on mac platform
* print identity on mac
* disable Mac workflow for now
* build: print prod and dev dependencies in packages/server
* use npm v6 on Windows
* use only=production npm install flag
* use latest version of Node on AppVeyor
* add env with NODE_ENV=production
* pretty ms for npm install
* fix retry
* remove devDependencies from each file
* test binary build logic on Circle
* do not even run unit tests on circle
* form package json path
* cannot mapSeries twice
* pass package folder name
* fixed missing json to save
* uncomment circle tests
* update some comments, remove branches
* update schemas and runs fixture, @jennifer-shehane can you update the desktop gui views? thx
* update runs list view to match updated api schemas
* fix humanTime refactor
* wip [skip ci] update
* wip [skip ci] update test
* [skip ci] fix env var
* bump sinon, create helper utility to always throw when a stub is called without being given stubbed behavior
* update failing specs
* fix some error messages
* update snapshot
* warning -> note, add snapshot tests
* change snapshot os.release, test env vars
* added 'object-schema' project, began updating fixture to match schema
* Update run display to match new api schemas
- add timer display component
- add some util functions
- update tests to actual test the run data
- capital cased some messaging in the runs
* desktop-gui: use json-schemas for testing
* remove only
* testing: copy integration artifacts on circle, close#1616
* rename api_schemas -> api_schemas_spec
* update more headings/buttons to have capital case text
- update some tests to be less brittle when text is changed.
* set timezone NYC
* ci: use Node 8.2.1 to build binary on Windows CI #1390
* use Node 8.2.1 on Mac buildkite
* add comment
* source bashrc
* print home folder
* do not source bashrc
* install nvm using curl
* back to nvm using bash_profile
* hmm, maybe it is using different shell
* hmm, login into bash
* remove nvm commands
* chore: add script to check Node version against .node-version
* electron: upgrade to 1.8.2, node 8.2.1, chromium 59
* server: update snapshots for node
* server: try to debug timeouts for mochawesome
* bump zunder
- node-sass 3.13.1 does not work with Node 8, since we’re upgrading the
project to node 8.2.1, we needed node-sass 4.5.3+. This node-sass dep
was coming from gulp-sass dep in zunder which has since been updated
* server: figured out that fixture scaffolding can cause timeouts
* bump zunder - get fix so that asserts are not prefixed with /
* server: use our own heroku example app
* use cypress/browsers:chrome64 docker image on Circle with Node 8
* update root folder name
* add hash to root cache
* disable permissions test, because cannot run as root
* server: only disable test in CI
* test new binary against other projects
* all: rename cypress-monorepo -> cypress
* scripts: use latest docker container
* server: don't skip as this messes up hooks which cause failures downstream
* driver: bump timeout for zonejs
* server: make tests pass for node 8.2.1 and 8.4.0