Commit graph

65 commits

Author SHA1 Message Date
David Sanders
f7945ade07
build: mtime cache for patches to speed up build (#25881) 2020-10-20 11:49:57 -07:00
Samuel Attard
01f5e9c5c4
build: make CI faster, magic contained within (#21086)
* build: cache the out directory for exact deps hash matches

* chore: generate a target based depshash discriminator

* fix: hash on gn args

* build: share logic on the mac builds

* build: ensure that the mksnapshot binary is built before stripping before zipping

* build: attach the workspace on macOS

* build: optimize the macOS checkout path for testing

* build: fix mksnapshot zip generation

* build: make the mac src cache restore work

* build: v2 out cache

* build: macOS cache restore is just stupidly slow

* build: strip more binaries

* build: attach the out cache to the workspace for macOS builds

* build: allow linux boxes to restore darwin out caches

* build: cat the deps hash target file

* build: ensure that the deps target hash matches on the linux box

* build: do not use host arch in target key

* build: force undefined in the target hash file

* build: only restore out cache when it isn't in the workspace

* build: fix the macOS cache workspace trick

* build: do not double restore

* build: remove the big stuff from the out dir

* build: workaround layer issue

* build: try it back on macOS again but with smaller thingy

* build: macOS needs the out cache now

* build: clean up for omptimal macOS path

* build: use old docker image

* build: idek at this point

* build: we need a deps hash

* build: yeah we need a checkout too

* chore: use testing env on save cache job

* chore: well that should fix the cache key thing

* chore: handle cross-OS path mismatch for src cache restore

* build: use a /portal directory to transfer the src cache appropriately

* build: use the correct docker image

* build: super perms for /portal

* build: increment out cache number

* build: ensure target hash is correct for args + disable pre-compiled headers on macOS

* build: wipe the cross-arch libffmpeg before building Electron
2019-11-27 16:29:53 -08:00
Jeremy Apthorp
8de925c4c2
test: move module tests to main process (#20419) 2019-10-09 16:33:15 -07:00
Samuel Attard
98c51dd660
build: ensure consistent lock files across multiple machines (#17955)
* build: ensure consistent package-lock across multiple machines

* build: fix linting errors and use npm ci instead of npm install

* build: use a yarn.lock and yarn instead of package-lock and npm

* chore: replace package-lock.json files with yarn.lock

* chore: replace last instance of `npm install`
2019-04-30 13:59:47 -07:00
Samuel Attard
e9114b3c00
build: optimize the happy path when syncing on CI (#17827)
* 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>
2019-04-22 15:36:59 -07:00
Samuel Attard
26df9992cf
build: use typescript for internal Electron JS code (#16441) 2019-02-06 10:27:20 -08:00
Robo
52fe92d02e feat: Upgrade to Chromium 71.0.3578.98 (#15966) 2019-01-11 17:00:43 -08:00
Milan Burda
8ba271efba refactor: eliminate brightray (#15240) 2018-10-24 12:49:10 +02:00
Samuel Attard
6d01952e66
chore: replace standard with eslint-config-standard and add custom rules (#14636)
* 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
2018-09-16 03:51:23 +10:00
Jeremy Apthorp
76c5f5cc8a
build: move libcc patches to electron repo (#14104)
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.
2018-09-13 22:02:16 -07:00
Samuel Attard
05783d56f7
chore: make the 'npm run test' command work out of the box (#14602) 2018-09-14 01:30:12 +10:00
Alexey Kuzmin
7d7401987a chore: generate API definitions in the project root (#14578)
'out' folder doesn't exist in a freshly cloned repo,
and there are not reasons to use it anyway.
2018-09-13 08:08:08 -05:00
Samuel Attard
c2063bc139
chore: make beta bumps work (#14174) 2018-08-17 13:00:43 -07:00
John Kleinschmidt
04855bc499
Merge pull request #12921 from electron/commit-package-lock
Add package-lock.json
2018-05-16 11:47:21 -04:00
Thiago de Arruda
54a506c8eb Add package-lock.json
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).
2018-05-14 15:23:52 -03:00
Jeremy Apthorp
f2b1b3f6b8 Add GN build 2018-05-10 14:03:02 -07:00
John Kleinschmidt
7acbbf2ef3 Add logic to bundle native mksnapshot for arm/arm64 2018-04-13 15:52:08 -04:00
OJ Kwon
dabd61bf80 chore(build): support generating compilation db (#12104) 2018-04-09 14:54:14 +09:00
Samuel Attard
2e5cb930de Provide an easy way to use a local build of Electron (#12426)
* 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
2018-03-25 00:03:17 -04:00
Cheng Zhao
da7fc54e37 Update sysroot to Debian Stretch 2018-02-23 10:21:24 +09:00
John Kleinschmidt
1989075d54 Ignore all npmrc and package-lock 2017-12-04 11:05:04 -05:00
John Kleinschmidt
d182bacd00 Ignore/remove package-lock files 2017-12-01 12:55:55 -05:00
John Kleinschmidt
0ef8f58090 Remove Travis references 2017-11-30 15:39:32 -05:00
Cheng Zhao
a83b8e751b Download mips64el toolchain 2017-11-21 19:38:21 +09:00
John Kleinschmidt
cb7f8e256e Change GitHub upload to use JS GitHub lib
Needed for Appveyor when running releases
2017-09-24 06:26:04 +09:00
Thiago de Arruda
d6fbf5f1bb Improve development workflow with built libchromiumcontent
- 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.
2017-08-15 05:40:22 -03:00
Cheng Zhao
bd697275c2 Ignore all node_modules/ dirs 2017-08-02 10:31:27 +09:00
Zeke Sikelianos
f0a12af707 ignore node-inspect's npmrc 2017-07-25 16:59:35 -07:00
Zeke Sikelianos
98d27d5abb gitignore .env and .npmrc 2017-07-25 16:58:12 -07:00
Zeke Sikelianos
3f53524b90 sort gitignore alphabetically 2017-07-25 16:57:35 -07:00
Cheng Zhao
ff08c36478 Only build against Jessie for arm64 arch 2017-05-23 16:10:54 +09:00
Cheng Zhao
28f11516fe Build with jessie sysroot image 2017-05-22 16:53:45 +09:00
Kevin Sawicki
7ff6036420 Consolidate ignores 2017-05-10 13:28:12 -07:00
Kevin Sawicki
5ea20b5b54 Wire up build for new brightray location 2017-05-10 13:27:49 -07:00
Kane Montreuil
a584acef46 Consolidate log files 2016-11-01 00:47:34 -04:00
Felix Rieseberg
96632370b2 Gitignore Visual Studio Files
Adds Visual Studio and Visual Studio Code configuration files (auto-generated) to .gitignore.
2016-08-10 08:54:50 -07:00
Robo
e27e3d641c linux: optionaly allow building x64 targets with sysroot 2016-03-10 17:34:42 +05:30
Eran Tiktin
4d4bb0a73e Added ctags cache files to .gitignore 2015-11-21 02:32:53 +02:00
Omri Litov
2ac40cc28e Added .idea to .gitignore 2015-10-28 21:30:52 +02:00
Cheng Zhao
1db843244d Upgrade to Chrome 45 2015-09-03 17:50:23 +09:00
Eran Tiktin
5337d8c23f Ignore native module tests on Windows debug build
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.
2015-08-27 23:05:06 +03:00
Cheng Zhao
f2daeb9d70 Build ia32 target with sysroot 2015-07-02 05:07:56 +00:00
Cheng Zhao
88eb5283a0 Download debian arm sysroot image 2015-07-01 09:22:40 +00:00
Cheng Zhao
bceac2ab7f Download prebuilt clang 2015-07-01 14:27:15 +08:00
Haojian Wu
16fb847009 Add script to setup crashpad repository.
Crashpad use `gclient` to maintain its third_party libraries.
This patch switches `gclient` instead of `git submodule` to align crashpad way.
2015-05-30 09:42:40 +08:00
Cheng Zhao
ca50cbb5ff Allow specifying the arch of libchromiumcontent to download 2015-04-11 17:29:21 +08:00
deepak1556
0b780def24 avoid overriding type value of showMessageBox 2015-03-06 17:56:26 +05:30
Cheng Zhao
c1e2348695 Check for version when downloading external binaries. 2014-05-18 23:42:47 +08:00
Cheng Zhao
9aefb9c2d3 Add /vendor/npm to gitignore. 2014-04-02 09:58:38 +08:00
Cheng Zhao
5b74dff8f1 Generate the distribution file under 'dist' directory. 2013-08-21 11:57:35 +08:00