mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
e7b6be5abe
Use no-remote-exec to allow for building and serving to occur locally but still allow remote caching. Because of the number of files involved in being passed to and from the RBE server, it is actually a bit faster to perform these actions locally. PR Close #54549
175 lines
4.2 KiB
Python
175 lines
4.2 KiB
Python
load("//:packages.bzl", "link_packages")
|
|
load("@aio_npm//@angular/build-tooling/bazel/remote-execution:index.bzl", "ENABLE_NETWORK")
|
|
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
|
|
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
|
|
load("@npm//@angular-devkit/architect-cli:index.bzl", "architect", "architect_test")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
# All source and configuration files required to build the docs app
|
|
APPLICATION_FILES = [
|
|
"angular.json",
|
|
"tsconfig.app.json",
|
|
"tsconfig.json",
|
|
"tsconfig.worker.json",
|
|
] + glob(
|
|
["src/**/*"],
|
|
exclude = [
|
|
"src/**/*.spec.ts",
|
|
# Temporarily exclude generated sources produced by the non-bazel
|
|
# build until the whole project is built by bazel and this directory
|
|
# isn't needed.
|
|
"src/generated/**/*",
|
|
],
|
|
)
|
|
|
|
TEST_FILES = APPLICATION_FILES + [
|
|
"karma.conf.js",
|
|
"tsconfig.spec.json",
|
|
] + glob(
|
|
["**/*.spec.ts"],
|
|
)
|
|
|
|
APPLICATION_DEPS = link_packages([
|
|
"@npm//@angular-devkit/build-angular",
|
|
"@npm//@angular/animations",
|
|
"@npm//@angular/cdk",
|
|
"@npm//@angular/common",
|
|
"@npm//@angular/compiler",
|
|
"@npm//@angular/compiler-cli",
|
|
"@npm//@angular/core",
|
|
"@npm//@angular/docs",
|
|
"@npm//@angular/forms",
|
|
"@npm//@angular/material",
|
|
"@npm//@angular/platform-browser",
|
|
"@npm//@angular/platform-server",
|
|
"@npm//@angular/router",
|
|
"@npm//gsap",
|
|
"@npm//marked",
|
|
"@npm//ngx-progressbar",
|
|
"@npm//ogl",
|
|
"@npm//rxjs",
|
|
"@npm//typescript",
|
|
"//adev/src/assets/images",
|
|
"//adev/src/assets/textures",
|
|
"//adev/src/assets/previews",
|
|
"//adev/src/assets:tutorials",
|
|
"//adev/src/assets/icons",
|
|
"//adev/src/assets:api",
|
|
"//adev/src/assets:content",
|
|
"@npm//@typescript/vfs",
|
|
"@npm//@codemirror/state",
|
|
"@npm//@codemirror/view",
|
|
"@npm//@codemirror/language",
|
|
"@npm//@codemirror/commands",
|
|
"@npm//@codemirror/search",
|
|
"@npm//@codemirror/autocomplete",
|
|
"@npm//@codemirror/lint",
|
|
"@npm//@codemirror/lang-html",
|
|
"@npm//@codemirror/lang-angular",
|
|
"@npm//@codemirror/lang-css",
|
|
"@npm//@codemirror/lang-sass",
|
|
"@npm//@codemirror/lang-javascript",
|
|
"@npm//@lezer/highlight",
|
|
"@npm//@lezer/javascript",
|
|
"@npm//@lezer/common",
|
|
"@npm//xterm",
|
|
"@npm//xterm-addon-fit",
|
|
"@npm//angular-split",
|
|
])
|
|
|
|
TEST_DEPS = APPLICATION_DEPS + link_packages([
|
|
"@npm//@angular/platform-browser-dynamic",
|
|
"@npm//@angular/build-tooling/bazel/browsers/chromium",
|
|
"@npm//@types/jasmine",
|
|
"@npm//@types/node",
|
|
"@npm//assert",
|
|
"@npm//jasmine",
|
|
"@npm//jasmine-core",
|
|
"@npm//karma-chrome-launcher",
|
|
"@npm//karma-coverage",
|
|
"@npm//karma-jasmine",
|
|
"@npm//karma-jasmine-html-reporter",
|
|
"//aio/tools:windows-chromium-path",
|
|
])
|
|
|
|
copy_to_bin(
|
|
name = "application_files_bin",
|
|
srcs = APPLICATION_FILES,
|
|
)
|
|
|
|
bool_flag(
|
|
name = "fast_build_mode",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "fast",
|
|
flag_values = {
|
|
":fast_build_mode": "true",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "full",
|
|
flag_values = {
|
|
":fast_build_mode": "false",
|
|
},
|
|
)
|
|
|
|
config_based_architect_flags = select({
|
|
":fast": ["--no-prerender"],
|
|
":full": ["--prerender"],
|
|
})
|
|
|
|
architect(
|
|
name = "build",
|
|
args = [
|
|
"angular-dev:build",
|
|
"--output-path=build",
|
|
] + config_based_architect_flags,
|
|
chdir = "$(RULEDIR)",
|
|
data = APPLICATION_DEPS + [
|
|
":application_files_bin",
|
|
],
|
|
# Network is required to inline fonts.
|
|
exec_properties = ENABLE_NETWORK,
|
|
output_dir = True,
|
|
tags = [
|
|
"no-remote-exec",
|
|
],
|
|
)
|
|
|
|
architect(
|
|
name = "serve",
|
|
args = [
|
|
"angular-dev:serve",
|
|
"--poll=1000",
|
|
"--live-reload",
|
|
"--watch",
|
|
],
|
|
chdir = package_name(),
|
|
data = APPLICATION_DEPS + [
|
|
":application_files_bin",
|
|
],
|
|
tags = [
|
|
"no-remote-exec",
|
|
],
|
|
)
|
|
|
|
architect_test(
|
|
name = "test",
|
|
args = [
|
|
"angular-dev:test",
|
|
"--no-watch",
|
|
],
|
|
chdir = package_name(),
|
|
data = TEST_DEPS + TEST_FILES,
|
|
env = {
|
|
"CHROME_BIN": "../$(CHROMIUM)",
|
|
},
|
|
toolchains = [
|
|
"@npm//@angular/build-tooling/bazel/browsers/chromium:toolchain_alias",
|
|
],
|
|
)
|