The current integration test for Bazel schematics downloads a published version of Angular as required by the http_archive rule in the CLI created WORKSPACE. However, this makes the test less useful because it does not actually test any changes to the Angular repo at source. This PR replaces the http_archive method in the WORSPACE with local_repository so that any local changes to the Angular repo are tested accordingly. With Typescript 3.2, the file e2e/src/app.po.ts generated by CLI no longer compiles under Bazel due to missing type annotations. A temporary file is placed in the integration/bazel-schematics directory while the change is pending in CLI repo. https://github.com/angular/angular-cli/pull/13406 PR Close #28061
42 lines
1.3 KiB
Bash
Executable File
42 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eux -o pipefail
|
|
|
|
function testBazel() {
|
|
# Set up
|
|
bazel version
|
|
rm -rf demo
|
|
# Create project
|
|
ng new demo --collection=@angular/bazel --defaults --skip-git
|
|
node replace_angular_repo.js "./demo/WORKSPACE"
|
|
cd demo
|
|
# TODO(kyliau) Remove this once the type annotations are added to AppPage
|
|
# https://github.com/angular/angular-cli/pull/13406
|
|
cp ../app.po.ts ./e2e/src/
|
|
# Run build
|
|
# TODO(kyliau): Use `bazel build` for now. Running `ng build` requires
|
|
# node_modules to be available in project directory.
|
|
bazel build //src:bundle
|
|
# Run test
|
|
ng test
|
|
ng e2e
|
|
}
|
|
|
|
function testNonBazel() {
|
|
# Replace angular.json that uses Bazel builder with the default generated by CLI
|
|
cp ../angular.json.original ./angular.json
|
|
# TODO(kyliau) Remove this once the additional assertion is added to CLI
|
|
cp ../app.e2e-spec.ts ./e2e/src/
|
|
# TODO(kyliau) Remove this once web_package rule is in use
|
|
cp ../index.html ./src/
|
|
rm -rf dist src/main.dev.ts src/main.prod.ts
|
|
# Just make a symlink instead of full yarn install to expose node_modules
|
|
ln -s $(bazel info output_base)/external/npm/node_modules node_modules
|
|
ng build --progress=false
|
|
ng test --progress=false --watch=false
|
|
ng e2e --configuration=ci
|
|
}
|
|
|
|
testBazel
|
|
testNonBazel
|