build(bazel): fix bazel integration test after rules_typescript update (#25490)

PR Close #25490
This commit is contained in:
Greg Magolan 2018-08-21 01:37:09 -07:00 committed by Matias Niemelä
parent 22e7f7e99f
commit a59d4da304
8 changed files with 181 additions and 741 deletions

View File

@ -4,41 +4,33 @@ exports_files([
"protractor.conf.js",
])
# ts_library and ng_module use the `//:tsconfig.json` target
# by default. This alias allows omitting explicit tsconfig
# attribute.
alias(
name = "tsconfig.json",
actual = "//src:tsconfig.json",
)
filegroup(
name = "node_modules",
srcs = glob(
["node_modules/**/*"],
[
# Include only .js, .json & .d.ts files to reduce the number of
# files in the //:node_modules filegroup
"node_modules/**/*.js",
"node_modules/**/*.json",
"node_modules/**/*.d.ts",
# All the files in the http-server package are necesssary
"node_modules/http-server/**",
# All the files in the protractor package are necesssary
"node_modules/protractor/**",
# Also include all files in node_modules/.bin
"node_modules/.bin/*",
],
exclude = [
# Exclude rxjs because we build it from sources using the label @rxjs//:rxjs
"node_modules/rxjs/**",
# Exclude directories that commonly contain filenames which are
# illegal bazel labels
# e.g. node_modules/adm-zip/test/assets/attributes_test/New folder/hidden.txt
"node_modules/**/test/**",
# e.g. node_modules/xpath/docs/function resolvers.md
"node_modules/**/docs/**",
# Exclude files with spaces which are illegal bazel labels
"node_modules/**/* *",
],
),
)
ANGULAR_TESTING = [
"node_modules/@angular/*/bundles/*-testing.umd.js",
# We use AOT, so the dynamic platform-browser should be visible only in tests
# NOTE that we still need to include the compiler because the core depends on it
"node_modules/@angular/platform-browser-dynamic/bundles/*.umd.js",
]
filegroup(
name = "angular_bundles",
srcs = glob(
["node_modules/@angular/*/bundles/*.umd.js"],
exclude = ANGULAR_TESTING,
),
)
filegroup(
name = "angular_test_bundles",
testonly = 1,
srcs = glob(ANGULAR_TESTING),
)

View File

@ -4,11 +4,9 @@ workspace(name = "bazel_integration_test")
# Download Bazel toolchain dependencies as needed by build actions
#
http_archive(
local_repository(
name = "build_bazel_rules_typescript",
url = "https://github.com/bazelbuild/rules_typescript/archive/0.16.1.zip",
strip_prefix = "rules_typescript-0.16.1",
sha256 = "5b2b0bc63cfcffe7bf97cad2dad3b26a73362f806de66207051f66c87956a995",
path = "node_modules/@bazel/typescript",
)
load("@build_bazel_rules_typescript//:package.bzl", "rules_typescript_dependencies")
rules_typescript_dependencies()
@ -26,7 +24,7 @@ http_archive(
local_repository(
name = "angular",
path = "node_modules/@angular/bazel",
path = "../..",
)
local_repository(

View File

@ -4,27 +4,21 @@
"version": "0.0.0",
"license": "MIT",
"dependencies": {
"@angular/animations": "file:../../dist/packages-dist/animations",
"@angular/common": "file:../../dist/packages-dist/common",
"@angular/compiler": "file:../../dist/packages-dist/compiler",
"@angular/core": "file:../../dist/packages-dist/core",
"@angular/platform-browser": "file:../../dist/packages-dist/platform-browser",
"@angular/platform-browser-dynamic": "file:../../dist/packages-dist/platform-browser-dynamic",
"reflect-metadata": "file:../../node_modules/reflect-metadata",
"rxjs": "file:../../node_modules/rxjs",
"tslib": "file:../../node_modules/tslib",
"zone.js": "file:../../node_modules/zone.js"
},
"devDependencies": {
"@angular/bazel": "file:../../dist/packages-dist/bazel",
"@angular/compiler-cli": "file:../../dist/packages-dist/compiler-cli",
"@types/jasmine": "2.8.7",
"@bazel/typescript": "0.16.1",
"@types/jasmine": "file:../../node_modules/@types/jasmine",
"@types/source-map": "0.5.1",
"http-server": "0.11.1",
"protractor": "file:../../node_modules/protractor",
"tsutils": "file:../../node_modules/tsutils",
"tsickle": "file:../../node_modules/tsickle",
"typescript": "file:../../node_modules/typescript"
},
"scripts": {
"postinstall": "ngc -p angular.tsconfig.json",
"test": "bazel build ... --noshow_progress && bazel test ..."
}
}

View File

@ -8,8 +8,12 @@ exports_files(["tsconfig.json"])
ng_module(
name = "src",
srcs = glob(["*.ts"]),
tsconfig = ":tsconfig.json",
deps = ["//src/hello-world"],
deps = [
"//src/hello-world",
"@angular//packages/common/http",
"@angular//packages/core",
"@angular//packages/platform-browser",
],
)
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
@ -17,12 +21,13 @@ load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
ts_devserver(
name = "devserver",
additional_root_paths = [
"bazel_integration_test/node_modules/tslib",
"bazel_integration_test/node_modules/zone.js/dist",
],
entry_module = "bazel_integration_test/src/main",
scripts = ["//:angular_bundles"],
serving_path = "/bundle.min.js",
static_files = [
"//:node_modules/tslib/tslib.js",
"//:node_modules/zone.js/dist/zone.min.js",
"index.html",
],

View File

@ -16,10 +16,9 @@ ng_module(
exclude = ["*.spec.ts"],
),
assets = [":hello-world-styles"],
tsconfig = "//src:tsconfig.json",
# FIXME(alexeagle): the rxjs dep should come from Angular, but if we use the
# npm distro of angular there is no ts_library rule to propagate the dep.
deps = ["@rxjs"],
deps = [
"@angular//packages/core",
],
)
ng_package(
@ -32,20 +31,27 @@ ts_library(
name = "test_lib",
testonly = 1,
srcs = glob(["*.spec.ts"]),
tsconfig = "//src:tsconfig.json",
deps = [":hello-world"],
deps = [
":hello-world",
"@angular//packages/core",
"@angular//packages/core/testing",
"@angular//packages/platform-browser",
"@angular//packages/platform-browser-dynamic/testing",
],
)
ts_web_test_suite(
name = "test",
bootstrap = ["//:node_modules/zone.js/dist/zone-testing-bundle.js"],
srcs = ["//:node_modules/tslib/tslib.js"],
bootstrap = [
"//:node_modules/zone.js/dist/zone-testing-bundle.js",
"//:node_modules/reflect-metadata/Reflect.js",
],
browsers = [
"@io_bazel_rules_webtesting//browsers:chromium-local",
"@io_bazel_rules_webtesting//browsers:firefox-local",
],
deps = [
":test_lib",
"//:angular_bundles",
"//:angular_test_bundles",
],
)

View File

@ -13,13 +13,13 @@ ts_library(
testonly = 1,
srcs = ["on-prepare.ts"],
tsconfig = ":tsconfig.json",
deps = ["@angular//src/protractor/utils"],
deps = ["@angular//packages/bazel/src/protractor/utils"],
)
protractor_web_test_suite(
name = "devserver_test",
configuration = "//:protractor.conf.js",
data = ["@angular//src/protractor/utils"],
data = ["@angular//packages/bazel/src/protractor/utils"],
on_prepare = ":ts_on_prepare",
server = "//src:devserver",
deps = [":e2e"],
@ -28,7 +28,7 @@ protractor_web_test_suite(
protractor_web_test_suite(
name = "prodserver_test",
configuration = "//:protractor.conf.js",
data = ["@angular//src/protractor/utils"],
data = ["@angular//packages/bazel/src/protractor/utils"],
on_prepare = ":ts_on_prepare",
server = "//src:prodserver",
deps = [":e2e"],

View File

@ -8,3 +8,6 @@ test --test_output=errors
# Workaround https://github.com/bazelbuild/bazel/issues/3645
# Limit Bazel to consuming 3072K of RAM
build --local_resources=3072,2.0,1.0
# Use the Angular 6 compiler
build --define=compile=legacy

File diff suppressed because it is too large Load Diff