#!/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/ cp ../package.json.replace ./package.json # 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