Skip to content

Commit 81e68a3

Browse files
Merge branch 'trunk' into feat/configurable-timeout-for-devtools-commands
2 parents 2f18649 + 8740f13 commit 81e68a3

File tree

4,639 files changed

+259935
-325475
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

4,639 files changed

+259935
-325475
lines changed

.bazelignore

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
buck-out
2+
dotnet/test/firefox/bin
3+
dotnet/test/firefox/obj
4+
dotnet/test/edge/bin
5+
dotnet/test/edge/obj
6+
dotnet/test/common/bin
7+
dotnet/test/common/obj
8+
dotnet/test/support/bin
9+
dotnet/test/support/obj
10+
dotnet/test/safari/bin
11+
dotnet/test/safari/obj
12+
dotnet/test/chrome/bin
13+
dotnet/test/chrome/obj
14+
dotnet/test/ie/bin
15+
dotnet/test/ie/obj
16+
dotnet/test/remote/bin
17+
dotnet/test/remote/obj
18+
dotnet/src/support/bin
19+
dotnet/src/support/obj
20+
dotnet/src/webdriver/bin
21+
dotnet/src/webdriver/obj
22+
java/build/production
223
java/client/build
324
java/server/build
25+
javascript/grid-ui/node_modules
26+
javascript/node/selenium-webdriver/node_modules
427
node_modules
5-
java/build/production

.bazelrc

Lines changed: 96 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,122 @@
1-
try-import .bazelrc.local
1+
try-import %workspace%/.bazelrc.local
2+
try-import %workspace%/.bazelrc.windows.local
3+
4+
# Enable bzlmod but without lockfile for a moment.
5+
# Lockfile is a problem to check in at the moment
6+
# because of constant Git conflicts and platform-specific
7+
# pieces.
8+
# https://github.com/bazelbuild/bazel/issues/20369
9+
# https://github.com/bazelbuild/bazel/issues/21491
10+
11+
common --enable_bzlmod --lockfile_mode=off
12+
13+
# Ensure Windows support is accurate.
14+
15+
startup --windows_enable_symlinks
16+
build --enable_runfiles
217

318
build --flag_alias=pin_browsers=//common:pin_browsers
419
build --flag_alias=headless=//common:headless
520

621
# Set the default java toolchain
7-
build --java_runtime_version=remotejdk_11
8-
build --tool_java_language_version=11
922

10-
# We target java 8 by default
11-
build --javacopt="--release 8"
23+
build --java_language_version=17
24+
build --java_runtime_version=remotejdk_17
25+
build --tool_java_language_version=17
26+
build --tool_java_runtime_version=remotejdk_17
27+
28+
# We target java 11 by default
29+
30+
build --javacopt="--release 11"
1231

1332
# Require java dependencies to be used and first-order
1433
build --experimental_strict_java_deps=strict
1534
build --explicit_java_test_deps
1635

36+
# Avoid ErrorProne getting annoyed about "impossible null checks"
37+
build --javacopt="-Xep:ImpossibleNullComparison:OFF"
38+
39+
# Allow spaces in runfile paths
40+
build --nobuild_runfile_links
41+
42+
# More JS magic
43+
build --experimental_allow_unresolved_symlinks
44+
# Avoid a warning about directory tracking being unsound
45+
startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1
46+
47+
# Required for faster TS builds
48+
build --@aspect_rules_ts//ts:skipLibCheck=always
49+
fetch --@aspect_rules_ts//ts:skipLibCheck=always
50+
query --@aspect_rules_ts//ts:skipLibCheck=always
51+
52+
build --@aspect_rules_ts//ts:default_to_tsc_transpiler
53+
fetch --@aspect_rules_ts//ts:default_to_tsc_transpiler
54+
query --@aspect_rules_ts//ts:default_to_tsc_transpiler
55+
1756
# Ensure builds are unpolluted by the user env
57+
1858
build --incompatible_strict_action_env
1959

20-
# Except for the PATH environment variable
21-
build --action_env=PATH
60+
# Required to get `protobuf` compiling, which is required for `rules_closure`
61+
build --incompatible_enable_cc_toolchain_resolution
62+
build --cxxopt=-std=c++14
63+
build --host_cxxopt=-std=c++14
2264

2365
# For build stamping
24-
build --workspace_status_command=scripts/build-info.py
66+
67+
build --enable_platform_specific_config
68+
build:linux --workspace_status_command=scripts/build-info.sh
69+
build:macos --workspace_status_command=scripts/build-info.sh
70+
build:windows --workspace_status_command="powershell.exe scripts/build-info.ps1"
2571

2672
# Make sure we get something helpful when tests fail
73+
2774
build --verbose_failures
2875
build --test_output=errors
2976

30-
# Tests need to be able to open sockets on localhost
31-
build --noexperimental_sandbox_default_allow_network
32-
3377
# pass environment variables to the test environment
34-
build --test_env=CI
35-
build --test_env=DASHBOARD_URL
36-
build --test_env=DISPLAY
37-
build --test_env=FIREFOX_NIGHTLY_BINARY
38-
build --test_env=GITHUB_ACTIONS
39-
build --test_env=LOCALAPPDATA
40-
build --test_env=MOZ_HEADLESS
41-
build --test_env=PATH # Remove once browser pinning works
42-
build --test_env=SELENIUM_BROWSER
43-
build --test_env=TRAVIS
78+
79+
test --test_env=CI
80+
test --test_env=DASHBOARD_URL
81+
test --test_env=DISPLAY
82+
test --test_env=FIREFOX_NIGHTLY_BINARY
83+
test --test_env=GITHUB_ACTIONS
84+
test --test_env=MOZ_HEADLESS
85+
test --test_env=SELENIUM_BROWSER
86+
test --test_env=TRAVIS
87+
test --test_env=PYTHON_VERSION
88+
test --test_env=SE_AVOID_STATS=true
89+
90+
# Remove once rules_ruby support proper $LOAD_PATH expansion.
91+
92+
test --test_env=RUBYOPT="-Irb/lib -w"
93+
94+
# Speed up JRuby startup.
95+
# https://github.com/jruby/jruby/wiki/Improving-startup-time
96+
97+
build --action_env=JRUBY_OPTS="--dev"
98+
test --test_env=JRUBY_OPTS="--dev"
99+
100+
# Expose necessary variables for Selenium-Manager.
101+
102+
test:windows --test_env=PATH
103+
test:windows --test_env=LOCALAPPDATA
104+
test:windows --test_env=PROGRAMFILES="C:\\Program Files"
105+
test:windows --test_env=PROGRAMFILES(X86)="C:\\Program Files (x86)"
44106

45107
test --test_timeout=1800
46108

47109
test:node_debug --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results
110+
test:ruby_debug --test_output=streamed --test_env=RUBY_DEBUG_FORK_MODE=parent --run_under="@bundle//bin:rdbg --nonstop --open --command"
111+
112+
113+
build:release --stamp
114+
build:release --compilation_mode=opt
115+
116+
# As regular `release` but all the build work happens on the RBE
117+
build:remote_release --config=release
118+
build:remote_release --config=remote
119+
build:remote_release --remote_download_toplevel
120+
121+
# RBE
122+
import %workspace%/.bazelrc.remote

.bazelrc.remote

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# The RBE to use
2+
build:remote --bes_results_url=https://gypsum.cluster.engflow.com/invocation
3+
build:remote --bes_backend=grpcs://gypsum.cluster.engflow.com
4+
build:remote --remote_executor=grpcs://gypsum.cluster.engflow.com
5+
build:remote --remote_cache=grpcs://gypsum.cluster.engflow.com
6+
7+
# The number of cores available
8+
build:remote -j 50
9+
10+
build:remote --define=EXECUTOR=remote
11+
build:remote --experimental_inmemory_dotd_files
12+
build:remote --experimental_inmemory_jdeps_files
13+
build:remote --remote_timeout=3600
14+
build:remote --spawn_strategy=remote,local
15+
#build:remote --nolegacy_important_outputs
16+
build:remote --incompatible_strict_action_env=true
17+
18+
build:remote --crosstool_top=//common/remote-build/cc:toolchain
19+
build:remote --extra_execution_platforms=//common/remote-build:platform
20+
build:remote --extra_toolchains=//common/remote-build:cc-toolchain
21+
build:remote --host_platform=//common/remote-build:platform
22+
build:remote --platforms=//common/remote-build:platform
23+
build:remote --cxxopt=-std=c++14
24+
25+
# The Docker images are running Linux
26+
build:remote --cpu=k8
27+
build:remote --host_cpu=k8
28+
29+
build:remote --disk_cache=
30+
31+
build:remote --incompatible_enable_cc_toolchain_resolution
32+
build:remote --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
33+
test:remote --test_env=DISPLAY=:99.0
34+
test:remote --test_tag_filters=-skip-remote,-remote
35+
36+
# Env vars we can hard code
37+
build:remote --action_env=HOME=/home/dev
38+
build:remote --action_env=PATH=/bin:/usr/bin:/usr/local/bin
39+
test:remote --test_env=PATH=/bin:/usr/bin:/usr/local/bin
40+
test:remote --test_env=HOME=/home/dev
41+
42+
# Make sure we sniff credentials properly
43+
build:remote --credential_helper=gypsum.cluster.engflow.com=%workspace%/scripts/credential-helper.sh
44+
45+
# Use pinned browsers when running remotely
46+
build:remote --//common:pin_browsers
47+
48+
# The remote build machines are pretty small, and 50 threads may leave them
49+
# thrashing, but our dev machines are a lot larger. Scale the workload so we
50+
# make reasonable usage of everything, everywhere, all at once.
51+
build:remote --local_resources=cpu='HOST_CPUS*10'
52+
build:remote --local_resources=memory='HOST_RAM*4.0'
53+
54+
# A small hint that we're running our tests remotely
55+
test:remote --test_env=REMOTE_BUILD=1
56+
57+
# Wait for up to 5 minutes for a test to pass
58+
test:remote --test_timeout=600
59+
60+
# Extend the remote config for CI
61+
build:remote-ci --config=remote
62+
build:remote-ci --curses=no --color=yes --show_timestamps --show_progress_rate_limit=5
63+
build:remote-ci --bes_upload_mode=wait_for_upload_complete
64+
build:remote-ci --remote_download_minimal
65+
66+
# Configuration changes suggested by EngFlow
67+
build:remote --grpc_keepalive_time=30s
68+
build:remote --nolegacy_important_outputs

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.2.1
1+
7.4.1

.devcontainer/devcontainer.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// https://containers.dev/implementors/json_reference/
2+
3+
{
4+
"name": "selenium-devcontainer",
5+
"build": {
6+
"dockerfile": "../scripts/dev-image/Dockerfile"
7+
},
8+
"runArgs": ["--name", "selenium_devcontainer"]
9+
}

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,7 @@ indent_style = space
5353
indent_size = 2
5454
end_of_line = crlf
5555
charset = utf-8
56+
57+
[{*.bazel,WORKSPACE}]
58+
indent_style = space
59+
indent_size = 4

.github/.bazelrc.local

Lines changed: 0 additions & 12 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/bug-report.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@ body:
4848
attributes:
4949
label: Relevant log output
5050
description: |
51-
Please copy and paste any relevant log output. This will be automatically formatted, so
52-
no need for backticks.
51+
Please copy and paste any relevant log output.
52+
Ideally, turn on more detailed logging: https://www.selenium.dev/documentation/webdriver/troubleshooting/logging/
53+
This will be automatically formatted, so no need for backticks.
5354
render: shell
5455
validations:
5556
required: true

.github/actions/bazel-test/action.yml

Lines changed: 0 additions & 11 deletions
This file was deleted.

.github/actions/bazel/action.yml

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)