Skip to content
Permalink
Browse files

fix(bazel): Directly spawn native Bazel binary (#30306)

Instead of launching a Node.js process that in turn spawns Bazel binary,
the Builder could now directly spawn the native binary. This makes the
bootup process slightly more efficient, and allows the Builder to
control spawn options. This works with both Bazel and iBazel.

PR Close #30306
  • Loading branch information...
kyliau authored and alxhub committed May 7, 2019
1 parent 392473e commit 2a0f497e9497fb415336da58be0cdfa26d008a3d
@@ -8,7 +8,7 @@

/// <reference types='node'/>

import {fork} from 'child_process';
import {spawn} from 'child_process';
import {copyFileSync, existsSync, readdirSync, statSync, unlinkSync} from 'fs';
import {dirname, join, normalize} from 'path';

@@ -24,7 +24,7 @@ export function runBazel(
projectDir = normalize(projectDir);
binary = normalize(binary);
return new Promise((resolve, reject) => {
const buildProcess = fork(binary, [command, workspaceTarget, ...flags], {
const buildProcess = spawn(binary, [command, workspaceTarget, ...flags], {
cwd: projectDir,
stdio: 'inherit',
});
@@ -51,12 +51,12 @@ export function runBazel(
*/
export function checkInstallation(name: Executable, projectDir: string): string {
projectDir = normalize(projectDir);
const packageName = `@bazel/${name}/package.json`;
const packageName = `@bazel/${name}`;
try {
const bazelPath = require.resolve(packageName, {
paths: [projectDir],
});
return dirname(bazelPath);
return require(bazelPath).getNativeBinary();
} catch (error) {
if (error.code === 'MODULE_NOT_FOUND') {
throw new Error(
@@ -23,6 +23,8 @@ build --incompatible_strict_action_env
run --incompatible_strict_action_env
test --incompatible_strict_action_env

build --incompatible_bzl_disallow_load_after_statement=false

test --test_output=errors

# Use the Angular 6 compiler
@@ -48,8 +48,8 @@ function addDevDependenciesToPackageJson(options: Schema) {

const devDependencies: {[k: string]: string} = {
'@angular/bazel': angularCoreVersion,
'@bazel/bazel': '^0.24.0',
'@bazel/ibazel': '^0.10.1',
'@bazel/bazel': '^0.25.1',
'@bazel/ibazel': '^0.10.2',
'@bazel/karma': '0.27.12',
'@bazel/typescript': '0.27.12',
};

0 comments on commit 2a0f497

Please sign in to comment.
You can’t perform that action at this time.