blob: 5d2102ebd7448a4235883511985069b0cfbf6327 [file] [log] [blame]
"""Bazel Modules used by the Skia Infra repository."""
bazel_dep(name = "aspect_bazel_lib", version = "2.21.1")
bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1")
bazel_dep(name = "aspect_rules_js", version = "2.5.0")
bazel_dep(name = "aspect_rules_ts", version = "3.7.0")
bazel_dep(name = "rules_browsers", version = "0.2.0")
bazel_dep(name = "rules_distroless", version = "0.6.1")
bazel_dep(name = "rules_nodejs", version = "6.5.0")
bazel_dep(name = "rules_pkg", version = "1.1.0")
bazel_dep(name = "rules_python", version = "0.31.0")
bazel_dep(name = "bazel_skylib", version = "1.8.2")
http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
####################################################################################################
# aspect_rules_ts setup
####################################################################################################
rules_ts_ext = use_extension(
"@aspect_rules_ts//ts:extensions.bzl",
"ext",
dev_dependency = True,
)
rules_ts_ext.deps(
ts_version_from = "//:package.json",
)
use_repo(rules_ts_ext, "npm_typescript")
####################################################################################################
# pnpm setup
####################################################################################################
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
node.toolchain(node_version = "18.15.0")
use_repo(node, "nodejs_toolchains")
use_repo(node, "nodejs")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
pnpm.pnpm(
name = "pnpm",
pnpm_version = "10.13.1",
)
use_repo(pnpm, "pnpm")
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
npm.npm_translate_lock(
name = "npm",
additional_file_contents = {},
bins = {},
custom_postinstalls = {},
data = [
"//:package.json",
],
dev = False,
external_repository_action_cache = ".aspect/rules/external_repository_action_cache",
lifecycle_hooks = {
"*": [
"preinstall",
"install",
"postinstall",
],
},
lifecycle_hooks_envs = {},
lifecycle_hooks_execution_requirements = {
"*": [
"no-sandbox",
],
},
no_optional = False,
npm_package_lock = "//:package-lock.json",
npm_package_target_name = "{dirname}",
npmrc = "//:.npmrc",
package_visibility = {},
patch_args = {
"*": [
"-p0",
],
},
patches = {},
pnpm_lock = "//:pnpm-lock.yaml",
preupdate = [],
prod = False,
quiet = False,
update_pnpm_lock = True,
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(
npm,
"npm",
)
####################################################################################################
# rules_python setup
####################################################################################################
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
configure_coverage_tool = True,
ignore_root_user_error = True,
python_version = "3.11",
)
use_repo(python, "python_3_11")
####################################################################################################
# rules_distroless setup
####################################################################################################
apt = use_extension("@rules_distroless//apt:extensions.bzl", "apt")
# These are sets of packages installed in various images.
apt.install(
name = "autoroll-be-apt-install",
lock = "//autoroll:autoroll-be.lock.json",
manifest = "//autoroll:autoroll-be.yaml",
)
use_repo(apt, "autoroll-be-apt-install")
apt.install(
name = "task-scheduler-jc-apt-install",
lock = "//task_scheduler:task-scheduler-jc.lock.json",
manifest = "//task_scheduler:task-scheduler-jc.yaml",
)
use_repo(apt, "task-scheduler-jc-apt-install")
####################################################################################################
# Bazelisk
####################################################################################################
# This is sort of a circular dependency, but some of our Docker images need a
# copy of Bazelisk to perform builds. It's convenient to define that here.
http_file(
name = "bazelisk",
downloaded_file_path = "bazelisk",
executable = True,
sha256 = "e1508323f347ad1465a887bc5d2bfb91cffc232d11e8e997b623227c6b32fb76",
url = "https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-amd64",
)
####################################################################################################
# bazel_skylib
####################################################################################################
# These are used for unit tests.
register_toolchains(
"@bazel_skylib//toolchains/unittest:cmd_toolchain",
)