Skip to content

Commit

Permalink
Use prebuilt Selenium Manager when stamping, otherwise try and build
Browse files Browse the repository at this point in the history
We only try and build for the current platform we're running
on: everything else gets the pre-built binaries too. This
avoids cross-compiling, but does allow us to test the latest
Selenium Manager without checking in the binaries.
  • Loading branch information
shs96c authored and p0deje committed Jun 6, 2023
1 parent a7fdd01 commit 3f139eb
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 49 deletions.
48 changes: 30 additions & 18 deletions common/manager/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,32 +1,44 @@
filegroup(
name = "manager",
srcs = glob([
"*",
"**/*",
]),
visibility = [
"//java/test/org/openqa/selenium/chrome:__pkg__",
"//java/test/org/openqa/selenium/edge:__pkg__",
"//java/test/org/openqa/selenium/firefox:__pkg__",
package(
default_visibility = [
"//dotnet/src/webdriver:__pkg__",
"//java/src/org/openqa/selenium/manager:__pkg__",
"//javascript/node/selenium-webdriver:__pkg__",
"//py:__pkg__",
"//rb:__pkg__",
],
)

alias(
name = "selenium-manager-linux",
actual = select({
"//common:stamp": "linux/selenium-manager",
"//conditions:default": "//rust:selenium-manager-linux",
}),
)

alias(
name = "selenium-manager-macos",
actual = select({
"//common:stamp": "macos/selenium-manager",
"//conditions:default": "//rust:selenium-manager-macos",
}),
)

alias(
name = "selenium-manager-windows",
actual = select({
"//common:stamp": "windows/selenium-manager.exe",
"//conditions:default": "//rust:selenium-manager-windows",
}),
)

exports_files(
[
"linux/selenium-manager",
"macos/selenium-manager",
"windows/selenium-manager.exe",
],
visibility = [
"//dotnet/src/webdriver:__pkg__",
"//java/src/org/openqa/selenium/manager:__pkg__",
"//java/test/org/openqa/selenium/chrome:__pkg__",
"//java/test/org/openqa/selenium/edge:__pkg__",
"//java/test/org/openqa/selenium/firefox:__pkg__",
"//javascript/node/selenium-webdriver:__pkg__",
"//py:__pkg__",
"//rb:__pkg__",
"//rust:__pkg__",
],
)
6 changes: 3 additions & 3 deletions dotnet/src/webdriver/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -248,19 +248,19 @@ copy_file(

copy_file(
name = "manager-linux",
src = "//common/manager:linux/selenium-manager",
src = "//common/manager:selenium-manager-linux",
out = "manager/linux/selenium-manager",
)

copy_file(
name = "manager-macos",
src = "//common/manager:macos/selenium-manager",
src = "//common/manager:selenium-manager-macos",
out = "manager/macos/selenium-manager",
)

copy_file(
name = "manager-windows",
src = "//common/manager:windows/selenium-manager.exe",
src = "//common/manager:selenium-manager-windows",
out = "manager/windows/selenium-manager.exe",
)

Expand Down
14 changes: 7 additions & 7 deletions java/src/org/openqa/selenium/manager/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@ java_export(

copy_file(
name = "manager-linux",
src = "//common/manager:linux/selenium-manager",
src = "//common/manager:selenium-manager-linux",
out = "linux/selenium-manager",
)

copy_file(
name = "manager-windows",
src = "//common/manager:windows/selenium-manager.exe",
out = "windows/selenium-manager.exe",
name = "manager-macos",
src = "//common/manager:selenium-manager-macos",
out = "macos/selenium-manager",
)

copy_file(
name = "manager-macos",
src = "//common/manager:macos/selenium-manager",
out = "macos/selenium-manager",
name = "manager-windows",
src = "//common/manager:selenium-manager-windows",
out = "windows/selenium-manager.exe",
)
14 changes: 7 additions & 7 deletions javascript/node/selenium-webdriver/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -152,18 +152,18 @@ genrule(

copy_file(
name = "manager-linux",
src = "//common/manager:linux/selenium-manager",
src = "//common/manager:selenium-manager-linux",
out = "bin/linux/selenium-manager",
)

copy_file(
name = "manager-windows",
src = "//common/manager:windows/selenium-manager.exe",
out = "bin/windows/selenium-manager.exe",
name = "manager-macos",
src = "//common/manager:selenium-manager-macos",
out = "bin/macos/selenium-manager",
)

copy_file(
name = "manager-macos",
src = "//common/manager:macos/selenium-manager",
out = "bin/macos/selenium-manager",
name = "manager-windows",
src = "//common/manager:selenium-manager-windows",
out = "bin/windows/selenium-manager.exe",
)
14 changes: 7 additions & 7 deletions py/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,20 @@ TEST_DEPS = [
]

copy_file(
name = "manager-macos",
src = "//common/manager:macos/selenium-manager",
out = "selenium/webdriver/common/macos/selenium-manager",
name = "manager-linux",
src = "//common/manager:selenium-manager-linux",
out = "selenium/webdriver/common/linux/selenium-manager",
)

copy_file(
name = "manager-linux",
src = "//common/manager:linux/selenium-manager",
out = "selenium/webdriver/common/linux/selenium-manager",
name = "manager-macos",
src = "//common/manager:selenium-manager-macos",
out = "selenium/webdriver/common/macos/selenium-manager",
)

copy_file(
name = "manager-windows",
src = "//common/manager:windows/selenium-manager.exe",
src = "//common/manager:selenium-manager-windows",
out = "selenium/webdriver/common/windows/selenium-manager.exe",
)

Expand Down
14 changes: 7 additions & 7 deletions rb/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,20 @@ exports_files(["ruby_version.bzl"])

copy_file(
name = "manager-linux",
src = "//common/manager:linux/selenium-manager",
src = "//common/manager:selenium-manager-linux",
out = "bin/linux/selenium-manager",
)

copy_file(
name = "manager-windows",
src = "//common/manager:windows/selenium-manager.exe",
out = "bin/windows/selenium-manager.exe",
name = "manager-macos",
src = "//common/manager:selenium-manager-macos",
out = "bin/macos/selenium-manager",
)

copy_file(
name = "manager-macos",
src = "//common/manager:macos/selenium-manager",
out = "bin/macos/selenium-manager",
name = "manager-windows",
src = "//common/manager:selenium-manager-windows",
out = "bin/windows/selenium-manager.exe",
)

select_file(
Expand Down
66 changes: 66 additions & 0 deletions rust/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,72 @@
load("@crates//:defs.bzl", "all_crate_deps")
load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")

# We want the release versions of Selenium to include the prebuilt
# binaries, but if we're doing day-to-day dev work, then we should
# use a local build, unless on we're on Windows, where for some
# reason we're not able to build locally.
#
# We tag the compiled versions as `manual` so that when we do a
# `bazel build //...` we don't do any additional work

# Start with the variants for each platform
alias(
name = "selenium-manager-windows",
actual = select({
"//common:windows": ":selenium-manager",
"//conditions:default": "//common/manager:windows/selenium-manager.exe",
}),
tags = [
"manual",
],
visibility = [
"//common/manager:__pkg__",
],
)

alias(
name = "selenium-manager-macos",
actual = select({
"//common:macos": ":selenium-manager",
"//conditions:default": "//common/manager:macos/selenium-manager",
}),
tags = [
"manual",
],
visibility = [
"//common/manager:__pkg__",
],
)

alias(
name = "selenium-manager-linux",
actual = select({
"//common:linux": ":selenium-manager",
"//conditions:default": "//common/manager:linux/selenium-manager",
}),
tags = [
"manual",
],
visibility = [
"//common/manager:__pkg__",
],
)

filegroup(
name = "selenium-manager-dev",
srcs = [
":selenium-manager-linux",
":selenium-manager-macos",
":selenium-manager-windows",
],
tags = [
"manual",
],
visibility = [
"//common/manager:__subpackages__",
],
)

rust_binary(
# Yes, this name is very similar to the library. Note the dash
# instead of an underscore
Expand Down

0 comments on commit 3f139eb

Please sign in to comment.