* build: optimize the happy path when syncing on CI
This adds a new cache for the "src" directory that is only ever used if
the cache key matches exactly. If there is no exact match we fall back
to the old strategy of using the git cache.
On the happy path this can make the checkout on linux/macOS take around
5-6 minutes which is **significantly** faster than the original 15-18
minutes.
* build: sort readdir result to ensure stability
* build: increment cache key
* Update config.yml
* build: ensure that the cleanly checked out Electron has had hooks run on it
* build: do not remove deps/v8
* build: ensure clean git directory when generating deps hash
* chore: add comments to caching logic
* Update .circleci/config.yml
Co-Authored-By: MarshallOfSound <samuel.r.attard@gmail.com>
* chore: replace standard with eslint-config-standard
This adds support for --cache so linting JS only takes ~1 second and only lints things that changed
It also allows us to add custom linting rules
* chore: add eslint-plugin-mocha and enable the no-exclusive-tests rule
This will block anyone from pushing / merging a `.only` test or describe
In the GN build, libchromiumcontent is no longer a distinct library, but
merely a container for a set of scripts and patches. Maintaining those
patches in a separate repository is tedious and error-prone, so merge
them into the main repo.
Once this is merged and GN is the default way to build Electron, the
libchromiumcontent repository can be archived.
In order to have 100% reproducible builds, Electron needs
package-lock.json. This is necessary because some dependencies affect
the build output (browserify for example, is used to generate the common
js environment for sandboxed renderers).
* Provide an easy way to use a local build of Electron
For instance from ~/projects/electron/out/D
* document ELECTRON_OVERRIDE_DIST_PATH
* Make the linter happy
* Tweak ELECTRON_OVERRIDE_DIST_PATH docs
- Add `--debug_libchromiumcontent` to build libchromiumcontent for debugging
(shared library build).
- By default, only invoke `gclient sync` the first time to checkout chromium
source tree. Add `--force_update_libchromiumcontent` switch to force updating.
- Document new options.
The goal is to allow faster edit/compile cycles when debugging/making changes
to libchromiumcontent.
This resolves#2558. There are no more errors when running test.py on
the debug build in Windows. When running the release build the tests
will be executed as usual.