Skip to content

Commit 713c7b6

Browse files
authored
Merge pull request #10 from sbarfurth/sbarfurth/bzlmod
Switch to Bzlmod
2 parents 56ef800 + e36de9e commit 713c7b6

13 files changed

Lines changed: 3272 additions & 102 deletions

.bazelversion

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8.x

MODULE.bazel

Lines changed: 62 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,62 @@
1-
###############################################################################
2-
# Bazel now uses Bzlmod by default to manage external dependencies.
3-
# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
4-
#
5-
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
6-
###############################################################################
1+
"""Rules/toolchains to use browsers with Bazel."""
2+
3+
module(
4+
name = "rules_browsers",
5+
version = "0.1.0",
6+
)
7+
8+
browsers = use_extension("//src/browsers:extensions.bzl", "browsers")
9+
browsers.chrome()
10+
browsers.chromedriver()
11+
browsers.firefox()
12+
13+
use_repo(
14+
browsers,
15+
"rules_browsers_chrome_linux",
16+
"rules_browsers_chrome_mac",
17+
"rules_browsers_chrome_mac_arm",
18+
"rules_browsers_chromedriver_linux",
19+
"rules_browsers_chromedriver_mac",
20+
"rules_browsers_chromedriver_mac_arm",
21+
"rules_browsers_firefox_linux",
22+
"rules_browsers_firefox_mac",
23+
"rules_browsers_firefox_mac_arm",
24+
)
25+
26+
bazel_dep(name = "platforms", version = "1.0.0")
27+
bazel_dep(name = "bazel_skylib", version = "1.8.1")
28+
29+
# JS
30+
bazel_dep(name = "aspect_rules_js", version = "2.4.2")
31+
32+
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
33+
34+
npm.npm_translate_lock(
35+
name = "npm_rules_browsers",
36+
data = [
37+
"//:package.json",
38+
"//:patches/@web__test-runner-chrome@0.18.0.patch",
39+
],
40+
npmrc = "//:.npmrc",
41+
pnpm_lock = "//:pnpm-lock.yaml",
42+
verify_node_modules_ignored = "//:.bazelignore",
43+
)
44+
45+
use_repo(npm, "npm_rules_browsers")
46+
47+
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
48+
49+
# Allows developers to use the matching pnpm version, for example:
50+
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
51+
use_repo(pnpm, "pnpm")
52+
53+
# TS
54+
bazel_dep(name = "aspect_rules_ts", version = "3.6.3")
55+
56+
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext", dev_dependency = True)
57+
58+
rules_ts_ext.deps(
59+
ts_version_from = "//:package.json",
60+
)
61+
62+
use_repo(rules_ts_ext, "npm_typescript")

MODULE.bazel.lock

Lines changed: 3181 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

WORKSPACE

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

setup/BUILD.bazel

Whitespace-only changes.

setup/step_1.bzl

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

setup/step_2.bzl

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

src/browsers/chromium/chromedriver.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
load("@rules_browsers//src/browsers/private:browser_repo.bzl", "browser_repo")
2+
load("//src/browsers/private:browser_repo.bzl", "browser_repo")
33

44
def define_chromedriver_repositories():
55

src/browsers/chromium/chromium.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
load("@rules_browsers//src/browsers/private:browser_repo.bzl", "browser_repo")
2+
load("//src/browsers/private:browser_repo.bzl", "browser_repo")
33

44
def define_chrome_repositories():
55

src/browsers/extensions.bzl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"""Extension that allows loading browser repositories."""
2+
3+
load("//src/browsers/chromium:chromedriver.bzl", "define_chromedriver_repositories")
4+
load("//src/browsers/chromium:chromium.bzl", "define_chrome_repositories")
5+
load("//src/browsers/firefox:firefox.bzl", "define_firefox_repositories")
6+
7+
def _browsers_impl(ctx):
8+
for mod in ctx.modules:
9+
for _ in mod.tags.chrome:
10+
define_chrome_repositories()
11+
for _ in mod.tags.chromedriver:
12+
define_chromedriver_repositories()
13+
for _ in mod.tags.firefox:
14+
define_firefox_repositories()
15+
16+
browsers = module_extension(
17+
implementation = _browsers_impl,
18+
tag_classes = {
19+
"chrome": tag_class(attrs = {}),
20+
"chromedriver": tag_class(attrs = {}),
21+
"firefox": tag_class(attrs = {}),
22+
},
23+
)

0 commit comments

Comments
 (0)