|
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") |
0 commit comments