build: update scripting and tooling to rely on define=angular_ivy_enabled instream of define=compile (#33983)
We need to migrate to using angular_ivy_enabled value to determine whether to use Ivy or ViewEngine for package building scripts and for size-tracking and symbol-extract tooling. PR Close #33983
This commit is contained in:
parent
5e3f6d203d
commit
4022376b3f
|
@ -15,7 +15,7 @@
|
||||||
"bazelBin": {
|
"bazelBin": {
|
||||||
"ngc-wrapped": {
|
"ngc-wrapped": {
|
||||||
"additionalAttributes": {
|
"additionalAttributes": {
|
||||||
"configuration_env_vars": "[\"compile\"]"
|
"configuration_env_vars": "[\"angular_ivy_enabled\"]"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@ ts_library(
|
||||||
|
|
||||||
nodejs_binary(
|
nodejs_binary(
|
||||||
name = "ngc-wrapped",
|
name = "ngc-wrapped",
|
||||||
configuration_env_vars = ["compile"],
|
configuration_env_vars = ["angular_ivy_enabled"],
|
||||||
data = [
|
data = [
|
||||||
":ngc_lib",
|
":ngc_lib",
|
||||||
"//packages/bazel/third_party/github.com/bazelbuild/bazel/src/main/protobuf:worker_protocol.proto",
|
"//packages/bazel/third_party/github.com/bazelbuild/bazel/src/main/protobuf:worker_protocol.proto",
|
||||||
|
|
|
@ -5,4 +5,4 @@ const {buildTargetPackages} = require('./package-builder');
|
||||||
|
|
||||||
|
|
||||||
// Build the ivy packages.
|
// Build the ivy packages.
|
||||||
buildTargetPackages('dist/packages-dist-ivy-aot', 'aot', 'Ivy AOT');
|
buildTargetPackages('dist/packages-dist-ivy-aot', true, 'Ivy AOT');
|
||||||
|
|
|
@ -13,7 +13,7 @@ const {
|
||||||
|
|
||||||
|
|
||||||
// Build the legacy (view engine) npm packages into `dist/packages-dist/`.
|
// Build the legacy (view engine) npm packages into `dist/packages-dist/`.
|
||||||
buildTargetPackages('dist/packages-dist', 'legacy', 'Production');
|
buildTargetPackages('dist/packages-dist', false, 'Production');
|
||||||
|
|
||||||
// Build the `zone.js` npm package (into `dist/bin/packages/zone.js/npm_package/`), because it might
|
// Build the `zone.js` npm package (into `dist/bin/packages/zone.js/npm_package/`), because it might
|
||||||
// be needed by other scripts/tests.
|
// be needed by other scripts/tests.
|
||||||
|
|
|
@ -47,10 +47,10 @@ module.exports = {
|
||||||
*
|
*
|
||||||
* @param {string} destPath Path to the output directory into which we copy the npm packages.
|
* @param {string} destPath Path to the output directory into which we copy the npm packages.
|
||||||
* This path should either be absolute or relative to the project root.
|
* This path should either be absolute or relative to the project root.
|
||||||
* @param {'legacy' | 'aot'} compileMode Either `legacy` (view engine) or `aot` (ivy).
|
* @param {boolean} enableIvy True, if Ivy should be used.
|
||||||
* @param {string} description Human-readable description of the build.
|
* @param {string} description Human-readable description of the build.
|
||||||
*/
|
*/
|
||||||
function buildTargetPackages(destPath, compileMode, description) {
|
function buildTargetPackages(destPath, enableIvy, description) {
|
||||||
console.log('##################################');
|
console.log('##################################');
|
||||||
console.log(`${scriptPath}:`);
|
console.log(`${scriptPath}:`);
|
||||||
console.log(' Building @angular/* npm packages');
|
console.log(' Building @angular/* npm packages');
|
||||||
|
@ -65,7 +65,7 @@ function buildTargetPackages(destPath, compileMode, description) {
|
||||||
const targets = exec(getTargetsCmd, true).split(/\r?\n/);
|
const targets = exec(getTargetsCmd, true).split(/\r?\n/);
|
||||||
|
|
||||||
// Use `--config=release` so that snapshot builds get published with embedded version info.
|
// Use `--config=release` so that snapshot builds get published with embedded version info.
|
||||||
exec(`${bazelCmd} build --config=release --define=compile=${compileMode} ${targets.join(' ')}`);
|
exec(`${bazelCmd} build --config=release --config=${enableIvy ? 'ivy' : 'view-engine'} ${targets.join(' ')}`);
|
||||||
|
|
||||||
// Create the output directory.
|
// Create the output directory.
|
||||||
const absDestPath = resolve(baseDir, destPath);
|
const absDestPath = resolve(baseDir, destPath);
|
||||||
|
|
|
@ -230,8 +230,7 @@ def ng_benchmark(**kwargs):
|
||||||
def nodejs_binary(data = [], **kwargs):
|
def nodejs_binary(data = [], **kwargs):
|
||||||
"""Default values for nodejs_binary"""
|
"""Default values for nodejs_binary"""
|
||||||
_nodejs_binary(
|
_nodejs_binary(
|
||||||
# Pass-thru --define=compile=foo as an environment variable
|
configuration_env_vars = ["angular_ivy_enabled"],
|
||||||
configuration_env_vars = ["compile"],
|
|
||||||
data = data + ["@npm//source-map-support"],
|
data = data + ["@npm//source-map-support"],
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
@ -250,8 +249,7 @@ def jasmine_node_test(deps = [], **kwargs):
|
||||||
]
|
]
|
||||||
_jasmine_node_test(
|
_jasmine_node_test(
|
||||||
deps = deps,
|
deps = deps,
|
||||||
# Pass-thru --define=compile=foo as an environment variable
|
configuration_env_vars = ["angular_ivy_enabled"],
|
||||||
configuration_env_vars = ["compile"],
|
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ def js_size_tracking_test(
|
||||||
golden_file,
|
golden_file,
|
||||||
max_percentage_diff,
|
max_percentage_diff,
|
||||||
max_byte_diff,
|
max_byte_diff,
|
||||||
required_compile_mode = "",
|
angular_ivy_enabled = "False",
|
||||||
data = [],
|
data = [],
|
||||||
**kwargs):
|
**kwargs):
|
||||||
all_data = data + [
|
all_data = data + [
|
||||||
|
@ -32,7 +32,7 @@ def js_size_tracking_test(
|
||||||
name = name,
|
name = name,
|
||||||
data = all_data,
|
data = all_data,
|
||||||
entry_point = entry_point,
|
entry_point = entry_point,
|
||||||
configuration_env_vars = ["compile"],
|
configuration_env_vars = ["angular_ivy_enabled"],
|
||||||
templated_args = [
|
templated_args = [
|
||||||
src,
|
src,
|
||||||
source_map,
|
source_map,
|
||||||
|
@ -40,7 +40,7 @@ def js_size_tracking_test(
|
||||||
"%d" % max_percentage_diff,
|
"%d" % max_percentage_diff,
|
||||||
"%d" % max_byte_diff,
|
"%d" % max_byte_diff,
|
||||||
"false",
|
"false",
|
||||||
required_compile_mode,
|
angular_ivy_enabled,
|
||||||
],
|
],
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
@ -50,7 +50,7 @@ def js_size_tracking_test(
|
||||||
testonly = True,
|
testonly = True,
|
||||||
data = all_data,
|
data = all_data,
|
||||||
entry_point = entry_point,
|
entry_point = entry_point,
|
||||||
configuration_env_vars = ["compile"],
|
configuration_env_vars = ["angular_ivy_enabled"],
|
||||||
templated_args = [src, source_map, golden_file, "0", "0", "true", required_compile_mode],
|
templated_args = [src, source_map, golden_file, "0", "0", "true", angular_ivy_enabled],
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
|
@ -26,14 +26,14 @@ if (require.main === module) {
|
||||||
|
|
||||||
export function main(
|
export function main(
|
||||||
filePath: string, sourceMapPath: string, goldenSizeMapPath: string, writeGolden: boolean,
|
filePath: string, sourceMapPath: string, goldenSizeMapPath: string, writeGolden: boolean,
|
||||||
maxPercentageDiff: number, maxByteDiff: number, requiredCompileMode: string): boolean {
|
maxPercentageDiff: number, maxByteDiff: number, requiresIvy: string): boolean {
|
||||||
const {sizeResult} = new SizeTracker(filePath, sourceMapPath);
|
const {sizeResult} = new SizeTracker(filePath, sourceMapPath);
|
||||||
const compileMode = process.env['compile'];
|
const ivyEnabled = process.env['angular_ivy_enabled'] == 'True';
|
||||||
|
|
||||||
if (requiredCompileMode && compileMode !== requiredCompileMode) {
|
if (requiresIvy && ivyEnabled) {
|
||||||
console.error(chalk.red(
|
console.error(chalk.red(
|
||||||
`Expected the size-tracking tool to be run with: ` +
|
`Expected the size-tracking tool to be run with: ` +
|
||||||
`--define=compile=${requiredCompileMode}`));
|
`--config=${requiresIvy ? 'ivy' : 'view-engine'}`));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,9 +60,9 @@ export function main(
|
||||||
});
|
});
|
||||||
|
|
||||||
const bazelTargetName = process.env['TEST_TARGET'];
|
const bazelTargetName = process.env['TEST_TARGET'];
|
||||||
const defineFlag = (compileMode !== 'legacy') ? `--define=compile=${compileMode} ` : '';
|
|
||||||
|
|
||||||
console.error(`\nThe golden file can be updated with the following command:`);
|
console.error(`\nThe golden file can be updated with the following command:`);
|
||||||
console.error(` yarn bazel run ${defineFlag}${bazelTargetName}.accept`);
|
console.error(
|
||||||
|
` yarn bazel run --config=${ivyEnabled ? 'ivy' : 'view-engine'} ${bazelTargetName}.accept`);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,11 +39,11 @@ function main(argv: [string, string, string] | [string, string]): boolean {
|
||||||
} else {
|
} else {
|
||||||
passed = symbolExtractor.compareAndPrintError(goldenFilePath, goldenContent);
|
passed = symbolExtractor.compareAndPrintError(goldenFilePath, goldenContent);
|
||||||
if (!passed) {
|
if (!passed) {
|
||||||
const compile = process.env['compile'];
|
const ivyEnabled = process.env['angular_ivy_enabled'] == 'True';
|
||||||
const defineFlag = (compile !== 'legacy') ? `--define=compile=${compile} ` : '';
|
|
||||||
console.error(`TEST FAILED!`);
|
console.error(`TEST FAILED!`);
|
||||||
console.error(` To update the golden file run: `);
|
console.error(` To update the golden file run: `);
|
||||||
console.error(` yarn bazel run ${defineFlag}${process.env['TEST_TARGET']}.accept`);
|
console.error(
|
||||||
|
` yarn bazel run --config=${ivyEnabled ? 'ivy' : 'view-engine'} ${process.env['TEST_TARGET']}.accept`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return passed;
|
return passed;
|
||||||
|
|
|
@ -25,7 +25,7 @@ def js_expected_symbol_test(name, src, golden, data = [], **kwargs):
|
||||||
data = all_data,
|
data = all_data,
|
||||||
entry_point = entry_point,
|
entry_point = entry_point,
|
||||||
templated_args = ["$(location %s)" % src, "$(location %s)" % golden],
|
templated_args = ["$(location %s)" % src, "$(location %s)" % golden],
|
||||||
configuration_env_vars = ["compile"],
|
configuration_env_vars = ["angular_ivy_enabled"],
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ def js_expected_symbol_test(name, src, golden, data = [], **kwargs):
|
||||||
testonly = True,
|
testonly = True,
|
||||||
data = all_data,
|
data = all_data,
|
||||||
entry_point = entry_point,
|
entry_point = entry_point,
|
||||||
configuration_env_vars = ["compile"],
|
configuration_env_vars = ["angular_ivy_enabled"],
|
||||||
templated_args = ["$(location %s)" % src, "$(location %s)" % golden, "--accept"],
|
templated_args = ["$(location %s)" % src, "$(location %s)" % golden, "--accept"],
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue