ec4381dd40
This commit switches the default value of the enableIvy flag to true. Applications that run ngc will now by default receive an Ivy build! This does not affect the way Bazel builds in the Angular repo work, since those are still switched based on the value of the --define=compile flag. Additionally, projects using @angular/bazel still use View Engine builds by default. Since most of the Angular repo tests are still written against View Engine (particularly because we still publish VE packages to NPM), this switch also requires lots of `enableIvy: false` flags in tsconfigs throughout the repo. Congrats to the team for reaching this milestone! PR Close #32219
55 lines
1.6 KiB
Bash
Executable File
55 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eux -o pipefail
|
|
|
|
function installLocalPackages() {
|
|
# Install Angular packages that are built locally from HEAD.
|
|
# This also gets around the bug whereby yarn caches local `file://` urls.
|
|
# See https://github.com/yarnpkg/yarn/issues/2165
|
|
readonly pwd=$(pwd)
|
|
readonly packages=(
|
|
animations common compiler core forms platform-browser
|
|
platform-browser-dynamic router bazel compiler-cli language-service
|
|
)
|
|
local local_packages=()
|
|
for package in "${packages[@]}"; do
|
|
local_packages+=("@angular/${package}@file:${pwd}/../../../dist/packages-dist/${package}")
|
|
done
|
|
yarn add "${local_packages[@]}"
|
|
}
|
|
|
|
|
|
function testBazel() {
|
|
# Set up
|
|
bazel version
|
|
ng version
|
|
rm -rf demo
|
|
# Create project
|
|
ng new demo --collection=@angular/bazel --routing --skip-git --skip-install --style=scss
|
|
node ./disable-ivy.js
|
|
cd demo
|
|
installLocalPackages
|
|
ng generate component widget --style=css
|
|
ng build
|
|
ng test
|
|
ng e2e
|
|
ng e2e --prod
|
|
if [ -e 'WORKSPACE' ] || [ -e 'BUILD.bazel' ]; then
|
|
echo 'WORKSPACE / BUILD.bazel file should not exist in project'
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function testNonBazel() {
|
|
# Replace angular.json that uses Bazel builder with the default generated by CLI
|
|
mv ./angular.json.bak ./angular.json
|
|
rm -rf dist src/main.dev.ts src/main.prod.ts
|
|
yarn webdriver-manager update --gecko=false --standalone=false ${CI_CHROMEDRIVER_VERSION_ARG:---versions.chrome 2.45}
|
|
ng build --progress=false
|
|
ng test --progress=false --watch=false
|
|
ng e2e --configuration=production --webdriver-update=false
|
|
}
|
|
|
|
testBazel
|
|
testNonBazel
|