Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into issue_29100
- Loading branch information
Showing
1,013 changed files
with
28,240 additions
and
15,068 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Electron Dev on Codespaces | ||
|
||
Welcome to the Codespaces Electron Developer Environment. | ||
|
||
## Quick Start | ||
|
||
Upon creation of your codespace you should have [build tools](https://github.com/electron/build-tools) installed and an initialized gclient checkout of Electron. In order to build electron you'll need to run the following commands. | ||
|
||
```bash | ||
e sync -vv | ||
e build | ||
``` | ||
|
||
The initial sync will take approximately ~30 minutes and the build will take ~8 minutes. Incremental syncs and incremental builds are substantially quicker. | ||
|
||
## Directory Structure | ||
|
||
Codespaces doesn't lean very well into gclient based checkouts, the directory structure is slightly strange. There are two locations for the `electron` checkout that both map to the same files under the hood. | ||
|
||
```graphql | ||
# Primary gclient checkout container | ||
/workspaces/gclient/* | ||
└─ src/* - # Chromium checkout | ||
└─ electron - # Electron checkout | ||
# Symlinked Electron checkout (identical to the above) | ||
/workspaces/electron | ||
``` | ||
|
||
## Goma | ||
|
||
If you are a maintainer [with Goma access](../docs/development/goma.md) it should be automatically configured and authenticated when you spin up a new codespaces instance. You can validate this by checking `e d goma_auth info` or by checking that your build-tools configuration has a goma mode of `cluster`. | ||
|
||
## Running Electron | ||
|
||
You can run Electron in a few ways. If you just want to see if it launches: | ||
|
||
```bash | ||
# Enter an interactive JS prompt headlessly | ||
xvfb-run e start -i | ||
``` | ||
|
||
But if you want to actually see Electron you will need to use the built-in VNC capability. If you click "Ports" in codespaces and then open the `VNC web client` forwarded port you should see a web based VNC portal in your browser. When you are asked for a password use `builduser`. | ||
|
||
Once in the VNC UI you can open `Applications -> System -> XTerm` which will open a VNC based terminal app and then you can run `e start` like normal and Electron will open in your VNC session. | ||
|
||
## Running Tests | ||
|
||
You run tests via build-tools and `xvfb`. | ||
|
||
```bash | ||
# Run all tests | ||
xvfb-run e test | ||
|
||
# Run the main process tests | ||
xvfb-run e test --runners=main | ||
|
||
# Run the old remote tests | ||
xvfb-run e test --runners=remote | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
{ | ||
"dockerComposeFile": "docker-compose.yml", | ||
"service": "buildtools", | ||
"onCreateCommand": ".devcontainer/on-create-command.sh", | ||
"workspaceFolder": "/workspaces/gclient/src/electron", | ||
"extensions": [ | ||
"joeleinbinder.mojom-language", | ||
"rafaelmaiolla.diff", | ||
"surajbarkale.ninja", | ||
"ms-vscode.cpptools", | ||
"mutantdino.resourcemonitor", | ||
"dbaeumer.vscode-eslint", | ||
"shakram02.bash-beautify", | ||
"marshallofsound.gnls-electron" | ||
], | ||
"settings": { | ||
"[gn]": { | ||
"editor.formatOnSave": true | ||
}, | ||
"editor.tabSize": 2, | ||
"bashBeautify.tabSize": 2 | ||
}, | ||
"forwardPorts": [8088, 6080, 5901], | ||
"portsAttributes": { | ||
"8088": { | ||
"label": "Goma Control Panel", | ||
"onAutoForward": "silent" | ||
}, | ||
"6080": { | ||
"label": "VNC web client (noVNC)", | ||
"onAutoForward": "silent" | ||
}, | ||
"5901": { | ||
"label": "VNC TCP port", | ||
"onAutoForward": "silent" | ||
} | ||
}, | ||
"hostRequirements": { | ||
"storage": "32gb", | ||
"cpus": 8 | ||
}, | ||
"remoteUser": "builduser" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
version: '3' | ||
|
||
services: | ||
buildtools: | ||
image: ghcr.io/electron/devcontainer:27db4a3e3512bfd2e47f58cea69922da0835f1d9 | ||
|
||
volumes: | ||
- ..:/workspaces/gclient/src/electron:cached | ||
|
||
- /var/run/docker.sock:/var/run/docker.sock | ||
|
||
command: /bin/sh -c "while sleep 1000; do :; done" | ||
|
||
user: builduser | ||
|
||
cap_add: | ||
- SYS_PTRACE | ||
security_opt: | ||
- seccomp:unconfined |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
#!/bin/bash | ||
|
||
set -eo pipefail | ||
|
||
buildtools=$HOME/.electron_build_tools | ||
gclient_root=/workspaces/gclient | ||
buildtools_configs=/workspaces/buildtools-configs | ||
|
||
export PATH="$PATH:$buildtools/src" | ||
|
||
# Create the persisted buildtools config folder | ||
mkdir -p $buildtools_configs | ||
rm -f $buildtools/configs | ||
ln -s $buildtools_configs $buildtools/configs | ||
|
||
# Write the gclient config if it does not already exist | ||
if [ ! -f $gclient_root/.gclient ]; then | ||
echo "solutions = [ | ||
{ \"name\" : \"src/electron\", | ||
\"url\" : \"https://github.com/electron/electron\", | ||
\"deps_file\" : \"DEPS\", | ||
\"managed\" : False, | ||
\"custom_deps\" : { | ||
}, | ||
\"custom_vars\": {}, | ||
}, | ||
] | ||
" >$gclient_root/.gclient | ||
fi | ||
|
||
# Write the default buildtools config file if it does | ||
# not already exist | ||
if [ ! -f $buildtools/configs/evm.testing.json ]; then | ||
write_config() { | ||
echo " | ||
{ | ||
\"root\": \"/workspaces/gclient\", | ||
\"goma\": \"$1\", | ||
\"gen\": { | ||
\"args\": [ | ||
\"import(\\\"//electron/build/args/testing.gn\\\")\", | ||
\"import(\\\"/home/builduser/.electron_build_tools/third_party/goma.gn\\\")\" | ||
], | ||
\"out\": \"Testing\" | ||
}, | ||
\"env\": { | ||
\"CHROMIUM_BUILDTOOLS_PATH\": \"/workspaces/gclient/src/buildtools\", | ||
\"GIT_CACHE_PATH\": \"/workspaces/gclient/.git-cache\" | ||
}, | ||
\"remotes\": { | ||
\"electron\": { | ||
\"origin\": \"https://github.com/electron/electron.git\" | ||
} | ||
} | ||
} | ||
" >$buildtools/configs/evm.testing.json | ||
} | ||
|
||
# Start out as cache only | ||
write_config cache-only | ||
|
||
e use testing | ||
|
||
# Attempt to auth to the goma service via codespaces tokens | ||
# if it works we can use the goma cluster | ||
export NOTGOMA_CODESPACES_TOKEN=$GITHUB_TOKEN | ||
if e d goma_auth login; then | ||
write_config cluster | ||
fi | ||
else | ||
# Even if the config file existed we still need to re-auth with the goma | ||
# cluster | ||
NOTGOMA_CODESPACES_TOKEN=$GITHUB_TOKEN e d goma_auth login || true | ||
fi |
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,6 +26,7 @@ compile_commands.json | |
# npm package | ||
/npm/dist | ||
/npm/path.txt | ||
/npm/checksums.json | ||
|
||
.npmrc | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
14 |
Oops, something went wrong.