mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
The legacy `workspace` integration test asset folder has been removed as it was unused and no longer representative of modern Angular CLI workspaces. In line with this cleanup, the Bazel dependency definitions for the integration tests have been reorganized. Runtime data dependencies have been moved from the `js_test` rules to the `data` attribute of their corresponding `ts_project` rules. This is a cleaner and more appropriate approach as it co-locates a test's runtime data dependencies with its source code definition, making the relationship between the code and its required assets more explicit and improving the overall maintainability of the build configuration. PR Close #64271
172 lines
6.6 KiB
Text
172 lines
6.6 KiB
Text
"""Rules/toolchains for angular with Bazel."""
|
|
|
|
module(
|
|
name = "angular",
|
|
)
|
|
|
|
bazel_dep(name = "rules_pkg", version = "1.1.0")
|
|
bazel_dep(name = "rules_nodejs", version = "6.5.2")
|
|
bazel_dep(name = "aspect_rules_ts", version = "3.7.0")
|
|
bazel_dep(name = "aspect_rules_js", version = "2.6.0")
|
|
bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1")
|
|
bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0")
|
|
bazel_dep(name = "aspect_rules_rollup", version = "2.0.1")
|
|
bazel_dep(name = "bazel_skylib", version = "1.8.2")
|
|
bazel_dep(name = "aspect_bazel_lib", version = "2.21.2")
|
|
bazel_dep(name = "tar.bzl", version = "0.5.6")
|
|
bazel_dep(name = "yq.bzl", version = "0.3.1")
|
|
bazel_dep(name = "rules_angular")
|
|
git_override(
|
|
module_name = "rules_angular",
|
|
commit = "c3721b6ece2050a59a97562e3b95527a3092b03b",
|
|
remote = "https://github.com/devversion/rules_angular.git",
|
|
)
|
|
|
|
bazel_dep(name = "devinfra")
|
|
git_override(
|
|
module_name = "devinfra",
|
|
commit = "58610eacb7efbc261f16197586fa7fb4c81adccd",
|
|
remote = "https://github.com/angular/dev-infra.git",
|
|
)
|
|
|
|
bazel_dep(name = "rules_sass")
|
|
git_override(
|
|
module_name = "rules_sass",
|
|
commit = "1184a80751a21af8348f308abc5b38a41f26850e",
|
|
remote = "https://github.com/devversion/rules_sass.git",
|
|
)
|
|
|
|
bazel_dep(name = "rules_browsers")
|
|
git_override(
|
|
module_name = "rules_browsers",
|
|
commit = "6749ba4c0dc5e04536369fa91fdb2d827b6705ff",
|
|
remote = "https://github.com/devversion/rules_browsers.git",
|
|
)
|
|
|
|
yq = use_extension("@yq.bzl//yq:extensions.bzl", "yq")
|
|
use_repo(yq, "yq_toolchains")
|
|
|
|
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
|
|
node.toolchain(node_version = "20.19.0")
|
|
use_repo(node, "nodejs_toolchains")
|
|
use_repo(node, "nodejs_darwin_amd64")
|
|
use_repo(node, "nodejs_darwin_arm64")
|
|
use_repo(node, "nodejs_linux_amd64")
|
|
use_repo(node, "nodejs_linux_arm64")
|
|
use_repo(node, "nodejs_linux_ppc64le")
|
|
use_repo(node, "nodejs_linux_s390x")
|
|
use_repo(node, "nodejs_windows_amd64")
|
|
|
|
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
|
|
pnpm.pnpm(
|
|
name = "pnpm",
|
|
pnpm_version = "10.16.1",
|
|
)
|
|
use_repo(pnpm, "pnpm")
|
|
|
|
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
|
|
npm.npm_translate_lock(
|
|
name = "npm",
|
|
data = [
|
|
"//:.pnpmfile.cjs",
|
|
"//:package.json",
|
|
"//:pnpm-workspace.yaml",
|
|
"//:tools/pnpm-patches/dagre-d3-es+7.0.11.patch",
|
|
"//adev:package.json",
|
|
"//adev/shared-docs:package.json",
|
|
"//adev/shared-docs/pipeline/api-gen:package.json",
|
|
"//integration:package.json",
|
|
"//modules:package.json",
|
|
"//packages/animations:package.json",
|
|
"//packages/benchpress:package.json",
|
|
"//packages/common:package.json",
|
|
"//packages/compiler:package.json",
|
|
"//packages/compiler-cli:package.json",
|
|
"//packages/compiler-cli/linker/babel/test:package.json",
|
|
"//packages/core:package.json",
|
|
"//packages/core/test/bundling:package.json",
|
|
"//packages/elements:package.json",
|
|
"//packages/forms:package.json",
|
|
"//packages/language-service:package.json",
|
|
"//packages/localize:package.json",
|
|
"//packages/platform-browser:package.json",
|
|
"//packages/platform-browser-dynamic:package.json",
|
|
"//packages/platform-server:package.json",
|
|
"//packages/router:package.json",
|
|
"//packages/service-worker:package.json",
|
|
"//packages/upgrade:package.json",
|
|
"//tools/bazel/rules_angular_store:package.json",
|
|
"//vscode-ng-language-service/integration/pre_standalone_project:package.json",
|
|
"//vscode-ng-language-service/integration/project:package.json",
|
|
],
|
|
npmrc = "//:.npmrc",
|
|
pnpm_lock = "//:pnpm-lock.yaml",
|
|
verify_node_modules_ignored = "//:.bazelignore",
|
|
)
|
|
use_repo(npm, "npm")
|
|
|
|
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext")
|
|
rules_ts_ext.deps(
|
|
name = "angular_npm_typescript",
|
|
# Obtained by: curl --silent https://registry.npmjs.org/typescript/5.9.3 | jq -r '.dist.integrity'
|
|
ts_integrity = "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
|
ts_version = "5.9.3",
|
|
)
|
|
use_repo(rules_ts_ext, **{"npm_typescript": "angular_npm_typescript"})
|
|
|
|
# TODO: Figure out how to make ng_project update whenever the packages/core::pkg target changes.
|
|
rules_angular = use_extension("@rules_angular//setup:extensions.bzl", "rules_angular")
|
|
|
|
use_repo_rule("@rules_angular//setup:repositories.bzl", "configurable_deps_repo")(
|
|
name = "rules_angular_configurable_deps",
|
|
angular_compiler_cli = "@angular//:node_modules/@angular/compiler-cli",
|
|
typescript = "@angular//:node_modules/typescript",
|
|
)
|
|
|
|
override_repo(rules_angular, "rules_angular_configurable_deps")
|
|
|
|
register_toolchains(
|
|
"@devinfra//bazel/git-toolchain:git_linux_toolchain",
|
|
"@devinfra//bazel/git-toolchain:git_macos_x86_toolchain",
|
|
"@devinfra//bazel/git-toolchain:git_macos_arm64_toolchain",
|
|
"@devinfra//bazel/git-toolchain:git_windows_toolchain",
|
|
)
|
|
|
|
CLDR_VERSION = "41"
|
|
|
|
cldr_json_data = use_repo_rule("//packages/common/locales/generate-locales-tool:cldr-data.bzl", "cldr_json_data_repository")
|
|
|
|
cldr_json_data(
|
|
name = "cldr_json_data",
|
|
urls = {
|
|
"https://github.com/unicode-org/cldr-json/releases/download/%s.0.0/cldr-%s.0.0-json-full.zip" % (CLDR_VERSION, CLDR_VERSION): "649b76647269e32b1b0a5f7b6eed52e9e63a1581f1afdcf4f6771e49c9713614",
|
|
},
|
|
)
|
|
|
|
cldr_xml_data = use_repo_rule("//packages/common/locales/generate-locales-tool:cldr-data.bzl", "cldr_xml_data_repository")
|
|
|
|
cldr_xml_data(
|
|
name = "cldr_xml_data",
|
|
urls = {
|
|
"https://github.com/unicode-org/cldr/releases/download/release-%s/cldr-common-%s.0.zip" % (CLDR_VERSION, CLDR_VERSION): "823c6170c41e2de2c229574e8a436332d25f1c9723409867fe721e00bc92d853",
|
|
},
|
|
)
|
|
|
|
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
# Fetch sauce connect (tool to open Saucelabs tunnel for Saucelabs browser tests)
|
|
http_archive(
|
|
name = "sauce_connect_linux_amd64",
|
|
build_file_content = """exports_files(["bin/sc"], visibility = ["//visibility:public"])""",
|
|
sha256 = "26b9c3630f441b47854b6032f7eca6f1d88d3f62e50ee44c27015d71a5155c36",
|
|
strip_prefix = "sc-4.8.2-linux",
|
|
url = "https://saucelabs.com/downloads/sc-4.8.2-linux.tar.gz",
|
|
)
|
|
|
|
http_archive(
|
|
name = "sauce_connect_mac",
|
|
build_file_content = """exports_files(["bin/sc"], visibility = ["//visibility:public"])""",
|
|
sha256 = "28277ce81ef9ab84f5b87b526258920a8ead44789a5034346e872629bbf38089",
|
|
strip_prefix = "sc-4.8.2-osx",
|
|
url = "https://saucelabs.com/downloads/sc-4.8.2-osx.zip",
|
|
)
|