build: create dev-infra-private npm package (#35862)
Creates the scaffolding for an @angular/dev-infra-private package which will not be published to npm but will be pushed to https://github.com/angular/dev-infra-private-builds repo for each commit to master. The contents of this npm package will then be depended on via package.json dependency for angular/angular angular/angular-cli and angular/components. PR Close #35862
This commit is contained in:
parent
c55f900081
commit
b42e2e0dff
|
@ -928,6 +928,7 @@ groups:
|
||||||
'.github/**',
|
'.github/**',
|
||||||
'.vscode/**',
|
'.vscode/**',
|
||||||
'.yarn/**',
|
'.yarn/**',
|
||||||
|
'dev-infra/**',
|
||||||
'docs/BAZEL.md',
|
'docs/BAZEL.md',
|
||||||
'docs/CARETAKER.md',
|
'docs/CARETAKER.md',
|
||||||
'docs/COMMITTER.md',
|
'docs/COMMITTER.md',
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
load("@build_bazel_rules_nodejs//:index.bzl", "pkg_npm")
|
||||||
|
load("@npm_bazel_typescript//:index.bzl", "ts_library")
|
||||||
|
|
||||||
|
ts_library(
|
||||||
|
name = "cli",
|
||||||
|
srcs = [
|
||||||
|
"cli.ts",
|
||||||
|
],
|
||||||
|
deps = [
|
||||||
|
"@npm//@types/node",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_npm(
|
||||||
|
name = "npm_package",
|
||||||
|
srcs = [
|
||||||
|
"package.json",
|
||||||
|
],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
":cli",
|
||||||
|
],
|
||||||
|
)
|
|
@ -0,0 +1,14 @@
|
||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
const args = process.argv.slice(2);
|
||||||
|
|
||||||
|
// TODO(josephperrott): Set up proper cli flag/command handling
|
||||||
|
switch(args[0]) {
|
||||||
|
default:
|
||||||
|
console.info('No commands were matched');
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"name": "@angular/dev-infra-private",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"description": "INTERNAL USE ONLY - Angular internal DevInfra tooling/scripts - INTERNAL USE ONLY",
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"ng-dev": "./cli.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const {buildZoneJsPackage} = require('./zone-js-builder');
|
const {buildZoneJsPackage} = require('./zone-js-builder');
|
||||||
|
const {buildDevInfraPackage} = require('./dev-infra-builder');
|
||||||
const {buildTargetPackages} = require('./package-builder');
|
const {buildTargetPackages} = require('./package-builder');
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,3 +20,6 @@ buildTargetPackages('dist/packages-dist', false, 'Production');
|
||||||
// Build the `zone.js` npm package into `dist/zone.js-dist/`, because it might be needed by other
|
// Build the `zone.js` npm package into `dist/zone.js-dist/`, because it might be needed by other
|
||||||
// scripts/tests.
|
// scripts/tests.
|
||||||
buildZoneJsPackage();
|
buildZoneJsPackage();
|
||||||
|
|
||||||
|
// Build the `angular-dev-infra` npm package into `dist/packages-dist/@angular/dev-infra-private`
|
||||||
|
buildDevInfraPackage();
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const {chmod, cp, mkdir, rm} = require('shelljs');
|
||||||
|
const {baseDir, bazelBin, bazelCmd, exec, scriptPath} = require('./package-builder');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build the `@angular/dev-infra-private` npm package and copies it to `dist/packages-dist`.
|
||||||
|
*/
|
||||||
|
function buildDevInfraPackage() {
|
||||||
|
console.info('##############################');
|
||||||
|
console.info(`${scriptPath}:`);
|
||||||
|
console.info(' Building @angular/dev-infra-private npm package');
|
||||||
|
console.info('##############################');
|
||||||
|
exec(`${bazelCmd} build //dev-infra:npm_package`);
|
||||||
|
|
||||||
|
const buildOutputDir = `${bazelBin}/dev-infra/npm_package`;
|
||||||
|
const distTargetDir = `${baseDir}/dist/packages-dist/dev-infra-private`;
|
||||||
|
|
||||||
|
console.info(`# Copy artifacts to ${distTargetDir}`);
|
||||||
|
mkdir('-p', distTargetDir);
|
||||||
|
rm('-rf', distTargetDir);
|
||||||
|
cp('-R', buildOutputDir, distTargetDir);
|
||||||
|
chmod('-R', 'u+w', distTargetDir);
|
||||||
|
|
||||||
|
console.info('');
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
buildDevInfraPackage
|
||||||
|
};
|
Loading…
Reference in New Issue