mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
2ce5ffd56b
We no longer use Bazel from the `ngcontainer` image as it is no longer maintained and we need to use the latest version of Bazel in CircleCI. It's not ideal to use Bazel through Yarn since binaries like that should be actually part of the docker image, but for now we need to do this for jobs that use NodeJS & Bazel at the same time. This is similar to what `angulart/angular` does.
111 lines
4.2 KiB
Python
111 lines
4.2 KiB
Python
workspace(name = "angular_material")
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
# Add NodeJS rules (explicitly used for sass bundle rules)
|
|
http_archive(
|
|
name = "build_bazel_rules_nodejs",
|
|
sha256 = "e04a82a72146bfbca2d0575947daa60fda1878c8d3a3afe868a8ec39a6b968bb",
|
|
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.31.1/rules_nodejs-0.31.1.tar.gz"],
|
|
)
|
|
|
|
# Add sass rules
|
|
http_archive(
|
|
name = "io_bazel_rules_sass",
|
|
sha256 = "f404a88872c5ffe9af7f5d54be35add624164b852c29c265843ba172bb0c7ac4",
|
|
strip_prefix = "rules_sass-9a00e557c32ac0f26e5d3c66d1d17316874027b3",
|
|
url = "https://github.com/bazelbuild/rules_sass/archive/9a00e557c32ac0f26e5d3c66d1d17316874027b3.zip",
|
|
)
|
|
|
|
load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories", "yarn_install")
|
|
|
|
# The minimum bazel version to use with this repo is 0.26.1
|
|
check_bazel_version("0.26.1")
|
|
|
|
node_repositories(
|
|
# For deterministic builds, specify explicit NodeJS and Yarn versions.
|
|
node_version = "10.13.0",
|
|
yarn_repositories = {
|
|
"1.16.0": ("yarn-v1.16.0.tar.gz", "yarn-v1.16.0", "df202627d9a70cf09ef2fb11cb298cb619db1b958590959d6f6e571b50656029"),
|
|
},
|
|
yarn_version = "1.16.0",
|
|
)
|
|
|
|
yarn_install(
|
|
name = "npm",
|
|
# Ensure that the script is available when running `postinstall` in the Bazel sandbox.
|
|
data = [
|
|
"//:angular-tsconfig.json",
|
|
"//:tools/npm/check-npm.js",
|
|
],
|
|
package_json = "//:package.json",
|
|
# Temporarily disable node_modules symlinking until the fix for
|
|
# https://github.com/bazelbuild/bazel/issues/8487 makes it into a
|
|
# future Bazel release
|
|
symlink_node_modules = False,
|
|
yarn_lock = "//:yarn.lock",
|
|
)
|
|
|
|
# Install all bazel dependencies of the @ngdeps npm packages
|
|
load("@npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies")
|
|
|
|
install_bazel_dependencies()
|
|
|
|
# Setup TypeScript Bazel workspace
|
|
load("@npm_bazel_typescript//:defs.bzl", "ts_setup_workspace")
|
|
|
|
ts_setup_workspace()
|
|
|
|
# Fetch transitive dependencies which are needed to use the karma rules.
|
|
load("@npm_bazel_karma//:package.bzl", "rules_karma_dependencies")
|
|
|
|
rules_karma_dependencies()
|
|
|
|
# Setup web testing. We need to setup a browser because the web testing rules for TypeScript need
|
|
# a reference to a registered browser (ideally that's a hermetic version of a browser)
|
|
load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories")
|
|
|
|
web_test_repositories()
|
|
|
|
load("@npm_bazel_karma//:browser_repositories.bzl", "browser_repositories")
|
|
|
|
browser_repositories()
|
|
|
|
# Fetch transitive dependencies which are needed to use the Sass rules.
|
|
load("@io_bazel_rules_sass//:package.bzl", "rules_sass_dependencies")
|
|
|
|
rules_sass_dependencies()
|
|
|
|
# Setup the Sass rule repositories.
|
|
load("@io_bazel_rules_sass//:defs.bzl", "sass_repositories")
|
|
|
|
sass_repositories()
|
|
|
|
# Bring in bazel_toolchains for RBE setup configuration.
|
|
http_archive(
|
|
name = "bazel_toolchains",
|
|
sha256 = "4598bf5a8b4f5ced82c782899438a7ba695165d47b3bf783ce774e89a8c6e617",
|
|
strip_prefix = "bazel-toolchains-0.27.0",
|
|
url = "https://github.com/bazelbuild/bazel-toolchains/archive/0.27.0.tar.gz",
|
|
)
|
|
|
|
load("@bazel_toolchains//repositories:repositories.bzl", bazel_toolchains_repositories = "repositories")
|
|
|
|
bazel_toolchains_repositories()
|
|
|
|
load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig")
|
|
|
|
rbe_autoconfig(
|
|
name = "rbe_default",
|
|
# Need to specify a base container digest in order to ensure that we can use the checked-in
|
|
# platform configurations for the "ubuntu16_04" image. Otherwise the autoconfig rule would
|
|
# need to pull the image and run it in order determine the toolchain configuration.
|
|
# See: https://github.com/bazelbuild/bazel-toolchains/blob/master/rules/rbe_repo.bzl#L229
|
|
base_container_digest = "sha256:94d7d8552902d228c32c8c148cc13f0effc2b4837757a6e95b73fdc5c5e4b07b",
|
|
digest = "sha256:76e2e4a894f9ffbea0a0cb2fbde741b5d223d40f265dbb9bca78655430173990",
|
|
registry = "marketplace.gcr.io",
|
|
# We can't use the default "ubuntu16_04" RBE image provided by the autoconfig because we need
|
|
# a specific Linux kernel that comes with "libx11" in order to run headless browser tests.
|
|
repository = "google/rbe-ubuntu16-04-webtest",
|
|
)
|