mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
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
174 lines
4.2 KiB
Text
174 lines
4.2 KiB
Text
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",
|
|
],
|
|
)
|