angular/aio/scripts/BUILD.bazel
Derek Cormier a61397f2f8 build(bazel): consolidate windows chromium path workaround
Add the hack to a central location so that it's easier to fix later.
2022-11-22 13:51:16 -07:00

97 lines
2.5 KiB
Text

load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
load("@aio_npm//@angular/build-tooling/bazel:filter_outputs.bzl", "filter_first_output")
load("//tools:defaults.bzl", "nodejs_binary", "nodejs_test")
package(default_visibility = ["//visibility:public"])
exports_files([
"run-with-local-server.mjs",
])
nodejs_binary(
name = "build-ngsw-config",
data = [
"//aio:firebase.json",
"//aio:ngsw-config.template.json",
"@aio_npm//canonical-path",
"@aio_npm//json5",
],
entry_point = "build-ngsw-config.js",
)
js_library(
name = "fast-serve-and-watch",
srcs = [
"fast-serve-and-watch.js",
],
deps = [
"//aio/tools/transforms/authors-package:watchdocs",
"@aio_npm//@angular-devkit/architect-cli",
],
)
nodejs_binary(
name = "build-404-page",
entry_point = "build-404-page.js",
)
nodejs_binary(
name = "audit-web-app",
testonly = True,
data = [
"//aio/tools:windows-chromium-path",
"@aio_npm//@angular/build-tooling/bazel/browsers/chromium",
"@aio_npm//lighthouse",
"@aio_npm//lighthouse-logger",
"@aio_npm//puppeteer-core",
],
entry_point = "audit-web-app.mjs",
env = {
"CHROME_BIN": "$(CHROMIUM)",
},
toolchains = [
"@aio_npm//@angular/build-tooling/bazel/browsers/chromium:toolchain_alias",
],
)
# Extract the executable audit script from DefaultInfo so that we can use
# $(rootpath) on it.
filter_first_output(
name = "audit-web-app-script",
testonly = True,
filters = [
# On Windows select the batch script
"audit-web-app.bat",
"audit-web-app.sh",
],
target = ":audit-web-app",
)
# This should be a nodejs_binary, however calling "bazel run" on this target
# on OSX causes the runfiles build to fail due to bazel-provided chromium having
# files with spaces in the name. However, it works when run in the sandbox when
# called using "bazel test".
#
# On Windows/Linux, call with:
#
# bazel run //aio/scripts:test-aio-a11y [targetUrl]
#
# On OXS call with:
#
# bazel test //aio/scripts:test-aio-a11y --test_arg=[targetUrl]
nodejs_test(
name = "test-aio-a11y",
testonly = True,
data = [
":audit-web-app",
":audit-web-app-script",
"@aio_npm//shelljs",
],
entry_point = "test-aio-a11y.mjs",
env = {
"AUDIT_SCRIPT_PATH": "$(rootpath :audit-web-app-script)",
},
tags = [
"manual",
],
)