Skip to content

Commit 2a9ae14

Browse files
committed
test(@angular-devkit/build-ng-packagr): build and test with Bazel
1 parent 15d84f1 commit 2a9ae14

37 files changed

+150
-554
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@
169169
"mini-css-extract-plugin": "0.9.0",
170170
"minimatch": "3.0.4",
171171
"minimist": "^1.2.0",
172+
"ng-packagr": "~9.0.0",
172173
"node-fetch": "^2.2.0",
173174
"npm-registry-client": "8.6.0",
174175
"open": "7.0.3",
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Copyright Google Inc. All Rights Reserved.
2+
#
3+
# Use of this source code is governed by an MIT-style license that can be
4+
# found in the LICENSE file at https://angular.io/license
5+
6+
licenses(["notice"]) # MIT
7+
8+
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
9+
load("@npm_bazel_typescript//:index.bzl", "ts_library")
10+
load("@npm_bazel_jasmine//:index.bzl", "jasmine_node_test")
11+
load("@build_bazel_rules_nodejs//:index.bzl", "pkg_npm")
12+
load("//tools:ts_json_schema.bzl", "ts_json_schema")
13+
14+
package(default_visibility = ["//visibility:public"])
15+
16+
ts_json_schema(
17+
name = "schema",
18+
src = "src/build/schema.json",
19+
)
20+
21+
ts_library(
22+
name = "build_ng_packagr",
23+
srcs = glob(
24+
include = ["src/**/*.ts"],
25+
exclude = ["src/**/*_spec.ts"],
26+
) + [
27+
"//packages/angular_devkit/build_ng_packagr:src/build/schema.ts",
28+
],
29+
data = glob(
30+
include = [
31+
"package.json",
32+
"builders.json",
33+
"src/build/schema.json",
34+
],
35+
),
36+
devmode_module = "commonjs",
37+
devmode_target = "es2018",
38+
module_name = "@angular-devkit/build-ng-packagr",
39+
module_root = "src/index.d.ts",
40+
deps = [
41+
"//packages/angular_devkit/architect",
42+
"@npm//@types/node",
43+
"@npm//ng-packagr",
44+
"@npm//rxjs",
45+
],
46+
)
47+
48+
pkg_npm(
49+
name = "npm_package",
50+
deps = [
51+
":build_ng_packagr",
52+
],
53+
)
54+
55+
pkg_tar(
56+
name = "npm_package_archive",
57+
srcs = [":npm_package"],
58+
extension = "tar.gz",
59+
strip_prefix = "./npm_package",
60+
tags = ["manual"],
61+
)
62+
63+
ts_library(
64+
name = "build_ng_packagr_test_lib",
65+
testonly = True,
66+
srcs = glob(
67+
include = [
68+
"src/test-utils.ts",
69+
"src/**/*_spec.ts",
70+
],
71+
),
72+
data = glob(["test/**/*"]),
73+
devmode_module = "commonjs",
74+
devmode_target = "es2018",
75+
tsconfig = "//:tsconfig-test.json",
76+
deps = [
77+
":build_ng_packagr",
78+
"//packages/angular_devkit/architect",
79+
"//packages/angular_devkit/architect/node",
80+
"//packages/angular_devkit/architect/testing",
81+
"//packages/angular_devkit/core",
82+
"@npm//@angular/common",
83+
"@npm//@angular/compiler",
84+
"@npm//@angular/compiler-cli",
85+
"@npm//@angular/core",
86+
"@npm//@angular/platform-browser",
87+
"@npm//@angular/platform-browser-dynamic",
88+
"@npm//@angular/router",
89+
"@npm//@types/jasmine",
90+
"@npm//@types/node",
91+
"@npm//ng-packagr",
92+
"@npm//rxjs",
93+
"@npm//tslib",
94+
"@npm//typescript",
95+
"@npm//zone.js",
96+
],
97+
)
98+
99+
jasmine_node_test(
100+
name = "build_ng_packagr_test",
101+
srcs = ["build_ng_packagr_test_lib"],
102+
tags = ["cpu:2"],
103+
templated_args = ["--nobazel_patch_module_resolver"],
104+
)
105+
106+
jasmine_node_test(
107+
name = "build_ng_packagr_ve_test",
108+
srcs = ["build_ng_packagr_test_lib"],
109+
tags = ["cpu:2"],
110+
templated_args = [
111+
"--nobazel_patch_module_resolver",
112+
"view_engine",
113+
],
114+
)

packages/angular_devkit/build_ng_packagr/src/build/index_spec_large.ts renamed to packages/angular_devkit/build_ng_packagr/src/build/index_spec.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@ import {
1818
} from '@angular-devkit/core'; // tslint:disable-line:no-implicit-dependencies
1919
import { map, take, tap } from 'rxjs/operators';
2020

21-
const veEnabled = process.argv.includes('--ve');
21+
// Default timeout for large specs is 2.5 minutes.
22+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 150000;
2223

23-
const devkitRoot = (global as unknown as { _DevKitRoot: string})._DevKitRoot;
24-
const workspaceRoot = join(
25-
normalize(devkitRoot),
26-
`tests/angular_devkit/build_ng_packagr/ng-packaged${veEnabled ? '-ve' : ''}/`,
27-
);
24+
// This flag controls whether AOT compilation uses Ivy or View Engine (VE).
25+
export let veEnabled = process.argv.some(arg => arg == 'view_engine');
26+
export const workspaceRoot = join(normalize(__dirname), `../../test/ng-packaged/`);
2827

2928
describe('NgPackagr Builder', () => {
3029
const host = new TestProjectHost(workspaceRoot);
@@ -48,6 +47,11 @@ describe('NgPackagr Builder', () => {
4847
);
4948

5049
architect = new Architect(architectHost, registry);
50+
51+
// Set AOT compilation to use VE if needed.
52+
if (veEnabled) {
53+
host.replaceInFile('tsconfig.json', `"enableIvy": true,`, `"enableIvy": false,`);
54+
}
5155
});
5256

5357
afterEach(() => host.restore().toPromise());
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"$schema": "../../../../packages/angular_devkit/core/src/workspace/workspace-schema.json",
3+
"version": 1,
4+
"projects": {
5+
"lib": {
6+
"root": "projects/lib",
7+
"projectType": "library",
8+
"targets": {
9+
"build": {
10+
"builder": "@angular-devkit/build-ng-packagr:build",
11+
"options": {
12+
"project": "projects/lib/ng-package.json",
13+
"tsConfig": "projects/lib/tsconfig.lib.json"
14+
},
15+
"configurations": {
16+
"production": {
17+
"tsConfig": "projects/lib/tsconfig.lib.prod.json"
18+
}
19+
}
20+
}
21+
}
22+
}
23+
}
24+
}

tests/angular_devkit/build_ng_packagr/ng-packaged/tsconfig.json renamed to packages/angular_devkit/build_ng_packagr/test/ng-packaged/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
]
1919
},
2020
"angularCompilerOptions": {
21+
"enableIvy": true,
2122
"disableTypeScriptVersionCheck": true
2223
}
2324
}

tests/angular_devkit/build_ng_packagr/ng-packaged-ve/angular.json

Lines changed: 0 additions & 42 deletions
This file was deleted.

tests/angular_devkit/build_ng_packagr/ng-packaged-ve/projects/lib/tsconfig.lib.json

Lines changed: 0 additions & 24 deletions
This file was deleted.

tests/angular_devkit/build_ng_packagr/ng-packaged-ve/tsconfig.json

Lines changed: 0 additions & 24 deletions
This file was deleted.

tests/angular_devkit/build_ng_packagr/ng-packaged/.gitignore

Lines changed: 0 additions & 42 deletions
This file was deleted.

tests/angular_devkit/build_ng_packagr/ng-packaged/angular.json

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)