Commit graph

193 commits

Author SHA1 Message Date
Samuel Attard
a45afddb75
build: unify YARN_VERSION variable usage and ensure CI uses yarn not npm (#18607)
* build: unify YARN_VERSION variable usage and ensure CI uses yarn not npm

* chore: use a JS helper so that it can work on windows

* chore: make script/yarn without node_modules installed
2019-06-05 16:30:39 -07:00
Samuel Attard
96371b6d75
spec: run nan tests to ensure v8 compat has not broken (#18489) 2019-05-29 12:38:17 -07:00
Jeremy Apthorp
f5b3d00b47
ci: add check for dist zip file changes (#18446) 2019-05-29 09:40:02 -07:00
Shelley Vohr
6e29611788 build: fix linux release builds on CircleCI (#18201) 2019-05-08 07:27:03 -07:00
Samuel Attard
496d796833 build: free up space before running macos ci (#18083)
* build: free up space before running macos ci

* build: also delete 14GB of src/.git for bonus space
2019-05-01 12:31:01 -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
5d45b59f7f
Merge pull request #17507 from electron/chromium-upgrade/75
chore: update to chromium 75.0.3740.3
2019-04-03 13:17:37 -07:00
Jeremy Apthorp
53f6cbccbf
refactor: use mojo for electron internal IPC (#17406)
* refactor: use mojo for electron internal IPC

* add sender_id, drop MessageSync

* remove usages of AtomFrameMsg_Message

* iwyu

* first draft of renderer->browser direction

* refactor to reuse a single ipc interface

* implement TakeHeapSnapshot through mojo

* the rest of the owl^WtakeHeapSnapshot mojofication

* remove no-op overrides in AtomRendererClient

* delete renderer-side ElectronApiServiceImpl when its pipe is destroyed

* looks like we don't need to overlay the renderer manifest after all

* don't try to send 2 replies to a sync rpc

* undo changes to manifests.cc

* unify sandboxed + unsandboxed ipc events

* lint

* register ElectronBrowser mojo service on devtools WebContents

* fix takeHeapSnapshopt failure paths

* {electron_api => atom}::mojom

* add send_to_all to ElectronRenderer::Message

* keep interface alive until callback is called

* review comments

* use GetContext from RendererClientBase

* robustify a test that uses window.open

* MessageSync posts a task to put sync messages in the same queue as async ones

* add v8::MicrotasksScope and node::CallbackScope

* iwyu

* use weakptr to api::WebContents instead of Unretained

* make MessageSync an asynchronous message & use non-associated interface

* iwyu + comments

* remove unused WeakPtrFactory

* inline OnRendererMessage[Sync]

* cleanups & comments

* use helper methods instead of inline lambdas

* remove unneeded async in test

* add mojo to manifests deps

* add gn check for //electron/manifests and mojo

* don't register renderer side service until preload has been run

* update gn check targets list

* move interface registration back to RenderFrameCreated
2019-04-02 15:38:16 -07:00
Jeremy Apthorp
9819433e88 fixup! download gn from cipd instead of GCS 2019-04-02 14:43:03 -07:00
Jeremy Apthorp
e2f0852c30 fixup! download gn from cipd instead of GCS 2019-04-02 14:43:03 -07:00
Jeremy Apthorp
9cc4cb2934 download gn from cipd instead of GCS
https://chromium-review.googlesource.com/c/chromium/src/+/1519726
2019-04-02 14:43:03 -07:00
Samuel Attard
b8dbe4bc15
spec: add tests for the autoUpdater on macOS that actually test if it works (#17442)
* spec: add tests for the autoUpdater on macOS that actually test if it works

* spec: add express as dep

* spec: add logic to auto-trust self-signed certificate and not run autoupdate specs on MAS

* build: fix the step name for importing the codesign cert

* chore: update updater spec PR as per feedback

* fix: s/atomBinding/electronBinding

* build: use spawn instead of exec
2019-03-29 17:32:52 -07:00
John Kleinschmidt
7eaa57b116
build: remove native mksnapshot for arm/arm64 (#17561)
* build: remove native mksnapshot for arm/arm64
2019-03-28 11:05:43 -04:00
Jeremy Apthorp
6555be2636 chore: bump chromium to 74.0.3729.27 (master) (#17345)
* chore: bump chromium to 74.0.3729.5 (master)

* Remove ScopedBlockingCall constructor without location

https://chromium-review.googlesource.com/c/chromium/src/+/1496560

* Use XCode 9.4.1 for Mac SDK 10.13

* chore: roll chromium 74.0.3729.27
2019-03-21 11:45:22 -04:00
Samuel Attard
1571461bae
build: add a workaround for circleci known_hosts issue (#17471) 2019-03-19 19:37:52 -07:00
Samuel Attard
ca701bb9af
spec: initial spike of main-process based tests 2019-03-14 12:50:06 -07:00
deepak1556
8043e2e278 build: only download gn binary for lint step 2019-03-08 15:06:16 -08:00
deepak1556
ffc32d8130 Move buildtools into src
https://chromium-review.googlesource.com/c/chromium/src/+/1450459
2019-03-08 15:06:16 -08:00
Robo
7936237677
build: enable gn check for //electron:electron_lib (#17100)
* build: enable gn check for //electron:electron_lib

* ci: add gn check step

* ci: set depot_tools path

* chrome_key_systems_provider.h nogncheck

* chore: fix gn check errors on windows

* chore: gn check //electron:electron_app
2019-03-05 10:38:55 +05:30
Robo
83894dc5db
ci: fix binaries for chromedriver build on macOS (#16893) 2019-02-12 16:14:52 +05:30
Samuel Attard
23b84917e0 ci: set MAS_BUILD=true on mas builds (#16824) 2019-02-08 10:12:18 -08:00
Samuel Attard
17c240a639
ci: make macOS CI faster (#16766)
* ci: cache brew update result

* ci: checkout and sync the macOS build on a linux machine for speed
2019-02-06 13:16:11 -08:00
Samuel Attard
fc06458038
ci: run lint on CircleCI (#16791) 2019-02-06 12:53:25 -08:00
John Kleinschmidt
0a047194b6
ci: move mac release tests to nightly cron job (#16685) 2019-02-01 15:07:23 -05:00
John Kleinschmidt
2f35c98e76
ci: build mac on CircleCI (#16552) 2019-01-31 12:59:32 -05:00
Jeremy Apthorp
ad3ea6ec53
ci: re-enable logging on CI (#16257) 2019-01-23 11:28:34 -08:00
John Kleinschmidt
34ac68c4a8
ci: Update build timeouts (#16492)
* Update timeout for native_mksnapshot and use bigger machines

* Revert "build: temporarily disable arm to unblock nightlies (#16479)"

This reverts commit 51961fccfa.
2019-01-22 16:14:01 -05:00
John Kleinschmidt
c0f6a44e39 Try longer timeout on electron build 2019-01-22 10:32:07 -08:00
Shelley Vohr
9c7f6affc2
Revert "ci: use config version 2.1 on CircleCI (#15665)" (#16304)
This reverts commit 0c46a7a4d9.
2019-01-07 11:59:45 -08:00
John Kleinschmidt
77f73830e8 build: Enable arm embedded builtins (#15939)
* Revert "FIXME: disable v8 embedded builtins feature for arm flavor"

This reverts commit 8ec3bc0272.

* build: don't enable embedded builtins for arm/arm64 native mksnapshot
2018-12-04 11:17:12 +09:00
John Kleinschmidt
515525cfc6
ci: Renable ffmpeg and mksnapshot tests on Azure Devops (#15800)
* ci: Renable ffmpeg and mksnapshot tests on VSTS

Also, add testing of ffmpeg and mksnapshot to arm tests
2018-11-30 11:17:01 -05:00
John Kleinschmidt
bb7c63c052
build: fix native_mksnapshot build (#15770)
* build: fix native_mksnapshot build

When we changed our electron_mksnapshot_zip target to include the v8_context_snapshot_generator, this dependency made the `run_mksnapshot` target run which was trying to run an arm/arm64 binary on x64 hardware.

Don't use custom build args for native_mksnapshot as they are not needed

* Added comment on why snapshot_blob.bin is skipped on arm/arm64
2018-11-21 15:19:19 -05:00
John Kleinschmidt
b53a858400
build: use different directory for generated breakpad symbols (#15716) 2018-11-14 12:47:01 -08:00
Alexey Kuzmin
0c46a7a4d9 ci: use config version 2.1 on CircleCI (#15665) 2018-11-12 11:22:21 -08:00
John Kleinschmidt
9e2b7dbea5
ci: add testing for mksnapshot (#15627)
* ci: add testing for mksnapshot
2018-11-09 10:54:17 -04:00
Alexey Kuzmin
9b05381acc build: make pyyaml an optional dependency (#15565) 2018-11-05 11:19:00 -04:00
Alexey Kuzmin
ec4a0e096f ci: run more Chromium unit tests (#15363)
* test: add an option to native tests runner to run also disabled tests

* ci: run all native tests on clean Chromium

* ci: update the disabled tests list for native unittests
2018-10-25 14:28:50 -04:00
John Kleinschmidt
9086b8067b ci: make sure brew installed node is available in path (#15377) 2018-10-25 11:40:23 +11:00
Alexey Kuzmin
5e199152e2 ci: run unittests on clean Chromium (#15125)
* ci: run unittests on clean Chromium

* test: add '--run-only-disabled-tests' flag to "script/native-tests.py"

* ci: add a job to run only disabled unittests

* test: use a different GN config for the native tests

* test: enable blink_common_unittests

* test: disable WeakPtrDeathTest*
2018-10-22 16:12:19 -04:00
Alexey Kuzmin
ba7ce7225b
build: document env vars expected to be set for the CI configs (#15129)
* ci: add a var for a full path to an Electron build config
* ci: document external environment variables used by the CI build configs
2018-10-20 01:44:36 +02:00
John Kleinschmidt
047cad1a4d ci: Fix timeout when generating breakpad symbols (#15126)
* ci: breakup dump symbols into multiple steps.

* Update step-zip-symbols
2018-10-13 13:02:52 +11:00
Alexey Kuzmin
a9646e3414 ci: strip linux binaries for nightly release builds (#15063) 2018-10-11 13:41:48 +11:00
Samuel Attard
ed065f0106
chore: dont run nightly jobs for everything
Refs: a71c814d19
2018-10-10 16:37:59 +11:00
Samuel Attard
a5c3091c34 chore: remove --enable-logging, causing issues on CI 2018-10-10 12:11:16 +11:00
Aleksei Kuzmin
a71c814d19 fixme: always run "nightly-release-test" workflow 2018-10-09 14:39:39 -07:00
Jeremy Apthorp
26a46b6b4b ci: enable stack dumping in tests 2018-10-09 14:39:39 -07:00
John Kleinschmidt
1cf00274ab
ci: strip linux binaries for release builds (#14991) 2018-10-09 16:19:05 -04:00
Alexey Kuzmin
7df51eef3c
ci: fix breakpad symbols generation on CircleCI for PRs from forks (#15026)
E.g. https://circleci.com/gh/electron/electron/78458
2018-10-08 23:56:15 +02:00
Alexey Kuzmin
918488a2f0
ci: various fixes (#15004)
- ci: don't send Slack notifications for the "linux-ia32-testing-tests" job
 - ci: fix symbols collection job on VSTS
 - ci: run tests on Windows for both "testing" and "release" builds
2018-10-07 16:05:20 +02:00
Alexey Kuzmin
b45dc78751
ci: fix breakpad symbols generation (#14981) 2018-10-06 01:55:06 +02:00
Alexey Kuzmin
5eeff55e83
ci: better Slack notifications for nightly jobs (#14985)
- do not report success from Eletron build jobs
 - report failures from more jobs
 - add separate summary jobs to report success
2018-10-06 01:15:38 +02:00
John Kleinschmidt
643781578e
ci: fix environment variables for fork prs (#14995)
Fixes #14984
Fixes xvfb for fork prs
Sets up sccache as readonly for fork prs.
2018-10-05 16:06:52 -04:00
John Kleinschmidt
8abe43ac8b
Save build artifacts for debug builds (#14992) 2018-10-05 11:11:51 -04:00
Samuel Attard
657901c2ff
chore: specify -j18 for electron ninja call 2018-10-05 10:21:36 +10:00
Alexey Kuzmin
0857ecf478 build: make boto and requests optional dependencies (#14970) 2018-10-04 20:20:25 -04:00
John Kleinschmidt
038b56e31e
ci: Trigger an arm test on VSTS after CircleCI build (#14898)
* ci: Trigger an arm test on VSTS after CircleCI build
2018-10-04 12:01:16 -04:00
Alexey Kuzmin
1acd840c38 ci: rearrange builds on CircleCI (#14969)
* ci: do not build ffmpeg for every PR on CircleCI

* ci: build and run unittests in a separate workflow on CircleCI

* ci: build chromedriver in a separate job
2018-10-04 11:50:46 -04:00
Samuel Attard
31c7891553 chore: checkout the arm resources during publish sync 2018-10-04 14:14:53 +10:00
Jeremy Apthorp
de020d0a5e ci: combine linux-*-checkout into one step (#14937) 2018-10-03 21:05:05 +02:00
Jeremy Apthorp
6a3402be5f ci: add -j3 to mksnapshot/ffmpeg due to smaller machine size (#14907) 2018-10-02 11:50:41 +10:00
Alexey Kuzmin
f1b097024e ci: run more unittests (#14861) 2018-10-01 17:50:52 -05:00
Alexey Kuzmin
5da7bae1b3
ci: refactor the CircleCI config (#14891)
- explicitly mark jobs that should use sccache
 - explicitly mark jobs that should send Slack notifications
 - remove unnecessary env vars and checks
 - build and verify ffmpeg, and build native mksnapshot nightly
 - add "native" to the native mksnapshot jobs names
 - minor changes
2018-10-01 22:24:51 +02:00
Alexey Kuzmin
4af922c9a2
ci: fail a tests job is there are no test results (#14884) 2018-10-01 16:59:55 +02:00
Samuel Attard
a4607d3284
chore: set TARGET_ARCH correctly for arm and arm64 builds 2018-09-29 15:32:48 +10:00
Samuel Attard
7e5d16ce84
chore: generate ffmpeg zip on linux release 2018-09-29 14:26:58 +10:00
Samuel Attard
adc60a72ca
chore: get target arch from TARGET_ARCH env var 2018-09-29 14:13:17 +10:00
Samuel Attard
ad9e01393d
chore: actually publish from circleci and always build node headers on vsts 2018-09-29 12:33:56 +10:00
John Kleinschmidt
1c728876e6 Fix yaml issue 2018-09-28 11:17:11 +10:00
John Kleinschmidt
3643ce5f85 Add publish jobs for CircleCI releases 2018-09-28 11:17:11 +10:00
Samuel Attard
4b0f335aba chore: initial work for running releases of GN build 2018-09-28 11:15:46 +10:00
Alexey Kuzmin
8963529238 ci: run unittests and browsertests separately (#14826) 2018-09-27 11:29:27 -04:00
John Kleinschmidt
1b4d425876
build: Generate breakpad symbols for GN release builds (#14791)
* Use chromium 's generate_breakpad_symbols.py

* Add breakpad symbol gen to CI.
2018-09-26 14:56:05 -04:00
Jeremy Apthorp
18c2574350 ci: migrate libcc's Dockerfile to electron and update it (#14786)
* ci: migrate libcc's Dockerfile to electron and update it

* Added nano and sudo

* Use new docker image in CircleCi

* installing nodejs needs curl

* Add needed dependencies

nacl contains dependencies needed for arm and ia32 builds
2018-09-25 15:30:22 -04:00
Alexey Kuzmin
c5fa7b8043 ci: add a branch name to Slack notifications (#14793) 2018-09-25 09:59:39 -04:00
Shelley Vohr
2617f50b7d chore: update mksnapshot and ffmpeg for GN (#14738)
* chore: update mksnapshot and ffmpeg for GN

* fix typo

* add non-native builds to CI

* split mksnapshot build and store steps

* Fix config order

* Use different targets for mksnapshot and native_mksnapshot

mksnapshot gets built in electron_app as part of the v8 build, so copy it from there

* Revert "Use different targets for mksnapshot and native_mksnapshot"

This reverts commit 6a1a50aa690124626b4357751949397298aeac95.

* Try specifying v8_snapshot_toolchain

* Fix v8_snapshot_toolchain reference

* Fix artifact locations

* Test native mksnapshot
2018-09-24 21:48:49 -04:00
Alexey Kuzmin
8a1ff7ca49 ci: run native tests on CircleCI (#14774)
* test: add a script to run Google Test binaries

* ci: run native tests on CircleCI
2018-09-24 09:44:18 -04:00
John Kleinschmidt
b3e469fa98
Merge pull request #14708 from electron/updates-for-gn-release
build: Updates for GN release builds
2018-09-24 09:36:57 -04:00
Alexey Kuzmin
0e3b2d92d7 ci: fix pattern for the Chromium branches names for CircleCI (#14769)
https://circleci.com/docs/2.0/workflows/#using-regular-expressions-to-filter-tags-and-branches
2018-09-23 10:19:43 -07:00
John Kleinschmidt
96ec3e9162 Split build and test into separate jobs
Also clean from review
2018-09-21 13:14:01 -04:00
John Kleinschmidt
62172dee6c Add electron_chromedriver_zip target 2018-09-21 13:13:52 -04:00
John Kleinschmidt
3154275d2f Add verify ffmpeg back to CircleCI builds 2018-09-21 13:12:26 -04:00
Aleksei Kuzmin
0b560607f7 ci: run nightly builds for Chromium upgrade branches 2018-09-21 12:25:20 +02:00
Aleksei Kuzmin
499fc48ccf ci: clean up the CircleCI config 2018-09-21 12:25:08 +02:00
Alexey Kuzmin
d927501139 ci: build mksnapshot in a separate job (#14741) 2018-09-20 17:50:14 -07:00
Aleksei Kuzmin
c75537b0bc ci: build ffmpeg and verify it in a separate jobs
- it is an independent task and should be done separately
 - we can use smaller machines for that
2018-09-20 15:52:22 +02:00
Jeremy Apthorp
e390d611df ci: [circle] don't use map merge key (<<) where unneeded 2018-09-19 16:06:19 -07:00
John Kleinschmidt
0e91db2188
Merge pull request #14672 from electron/use-smaller-machines-on-linux-ci
ci: use smaller size machines for some Linux CI jobs
2018-09-19 13:51:58 -04:00
Aleksei Kuzmin
2f0f88e60a ci: do not run verify-ffmpeg on Mac on CircleCI 2018-09-19 15:18:35 +02:00
Aleksei Kuzmin
be2bcbef42 ci: refactor Mac builds on CircleCI 2018-09-19 15:18:35 +02:00
Aleksei Kuzmin
8664adaea4 ci: use smaller size machines for some Linux CI jobs
- use "medium" machines for testing jobs
 - keep "2xlarge" for checkout and compilation
2018-09-18 18:30:01 +02:00
Aleksei Kuzmin
6b6c1d0c0c ci: add a FYI job to build Chromium test binaries 2018-09-18 14:01:20 +02:00
Aleksei Kuzmin
a0dd5f03a8 ci: use CircleCI workspaces 2018-09-17 17:39:18 +02:00
John Kleinschmidt
838b26ee26 ci: Move Mac builds to Azure Devops (VSTS) (#14588)
* Add support for multiple mocha reporters

Allows us to output to junit file and to console at the same time

* Cleanup VSTS file

Don't install depot_tools everytime as it is already installed.

Only run tests if "RUN_TESTS" environment variable is set
Only notify slack if "NOTIFY_SLACK" environment variable is set

Don't use sccache for release builds

Move CircleCI mac builds to VSTS

* Only build mac PRS from forks

Don't install depot_tools everytime as it is already installed.

Only run tests if "RUN_TESTS" environment variable is set
Only notify slack if "NOTIFY_SLACK" environment variable is set

Don't use sccache for release builds

Move CircleCI mac builds to VSTS

Use sccache helper script

* rename vsts-gn.yml to vsts.yml
Make sure Electron isn't running before starting tests
2018-09-14 11:56:16 -07:00
Samuel Attard
91f00a518a
ci: fix CI runs after 9e85bdb0 2018-09-14 17:50:03 +10: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
Aleksei Kuzmin
45837af24a ci: do not use scripts and binaries from the libcc repo 2018-09-12 13:08:17 +02:00
Jeremy Apthorp
f5aac36421 chore: rename circleci builds to remove -gn and -fyi (#14531) 2018-09-11 17:57:41 +10:00
Aleksei Kuzmin
57a4d86669 refactor: do not use electron.gyp contents in the verify-ffmpeg script
Also run verify ffmpeg with cmd instead of powershell
2018-09-09 12:30:51 +02:00
Jeremy Apthorp
72526927d9 build: remove gyp build files (#14097)
* build: remove gyp build files

* docs: update build instructions

* build: temporary restore electron.gyp

* build: do not update Electron version in the electron.gyp

* chore: remove unused submodules

* ci: remove obsolete CI scripts and configs

* chore: remove obsolete scripts

* chore: remove obsolete functions from lib/util.py

* ci: send Slack notification for nightly build results
2018-09-09 10:15:32 +09:00
John Kleinschmidt
5a72441b2a
build: build ffmpeg and native_mksnapshot for GN release builds (#14240)
* build ffmpeg and native_mksnapshot for GN release builds

* Test ffmpeg via verify-ffmpeg.py

* remove sccache from Windows builds
2018-08-22 11:41:25 -04:00