Skip to content

Commit 7f93735

Browse files
clydinangular-robot[bot]
authored andcommitted
build: use bazel to perform release builds
When performing a release via the dev-infra `ng-dev` tooling, the release builds for the packages that will be published are now performed using bazel. Prior to this, the release builds were performed using a custom build script that programmatically invoked TypeScript APIs. The Bazel build and discovery process for the releasable packages is performed by a script that is based on the scripts from components and framework repositories. Several small modifications were performed to match the behavior and structure of the cli repository: * Use of `packages` as the source root in the bazel query * Use of `pkg_npm` rule in the bazel query * Partial transition to native Node.js `fs` APIs instead of `shelljs` * Directory creation per package when copying output (supports multiple package scopes) * Copying of archives (tgz) for each package The snapshot and local build capabilities are not modified as part of this change but will be merged in a followup as part of a larger transition to use bazel throughout the package build process.
1 parent ff23d35 commit 7f93735

File tree

19 files changed

+201
-8
lines changed

19 files changed

+201
-8
lines changed

.circleci/dynamic_config.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ jobs:
332332

333333
publish_artifacts:
334334
executor: action-executor
335+
resource_class: medium
335336
environment:
336337
steps:
337338
- custom_attach_workspace
@@ -342,7 +343,7 @@ jobs:
342343
name: Copy tarballs to folder
343344
command: |
344345
mkdir -p dist/artifacts/
345-
cp dist/*.tgz dist/artifacts/
346+
cp dist/releases/*.tgz dist/artifacts/
346347
- store_artifacts:
347348
path: dist/artifacts/
348349
destination: angular

.ng-dev/release.mts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
import '../lib/bootstrap-local.js';
2-
31
import { ReleaseConfig } from '@angular/ng-dev';
42
import packages from '../lib/packages.js';
5-
import buildPackages from '../scripts/build.js';
63

74
const npmPackages = Object.entries(packages.releasePackages).map(([name, { experimental }]) => ({
85
name,
@@ -13,7 +10,12 @@ const npmPackages = Object.entries(packages.releasePackages).map(([name, { exper
1310
export const release: ReleaseConfig = {
1411
representativeNpmPackage: '@angular/cli',
1512
npmPackages,
16-
buildPackages: () => buildPackages.default(),
13+
buildPackages: async () => {
14+
// The `performNpmReleaseBuild` function is loaded at runtime to avoid loading additional
15+
// files and dependencies unless a build is required.
16+
const { performNpmReleaseBuild } = await import('../scripts/build-packages-dist.mjs');
17+
return performNpmReleaseBuild();
18+
},
1719
releaseNotes: {
1820
groupOrder: [
1921
'@angular/cli',

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
"@types/progress": "^2.0.3",
118118
"@types/resolve": "^1.17.1",
119119
"@types/semver": "^7.3.12",
120+
"@types/shelljs": "^0.8.11",
120121
"@types/tar": "^6.1.2",
121122
"@types/text-table": "^0.2.1",
122123
"@types/yargs": "^17.0.8",

packages/angular/cli/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ pkg_npm(
176176
"//packages/angular_devkit/schematics:package.json",
177177
"//packages/schematics/angular:package.json",
178178
],
179+
tags = ["release-package"],
179180
deps = [
180181
":README.md",
181182
":angular-cli",

packages/angular/create/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ genrule(
3232

3333
pkg_npm(
3434
name = "npm_package",
35+
tags = ["release-package"],
3536
visibility = ["//visibility:public"],
3637
deps = [
3738
":README.md",

packages/angular/pwa/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pkg_npm(
8888
"//packages/angular_devkit/schematics:package.json",
8989
"//packages/schematics/angular:package.json",
9090
],
91+
tags = ["release-package"],
9192
deps = [
9293
":README.md",
9394
":license",

packages/angular_devkit/architect/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ pkg_npm(
112112
pkg_deps = [
113113
"//packages/angular_devkit/core:package.json",
114114
],
115+
tags = ["release-package"],
115116
deps = [
116117
":README.md",
117118
":architect",

packages/angular_devkit/architect/node/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ ts_library(
2323
"//packages/angular_devkit/architect",
2424
"//packages/angular_devkit/core",
2525
"//packages/angular_devkit/core/node",
26-
"//tests/angular_devkit/architect/node/jobs:jobs_test_lib",
2726
"@npm//@types/node",
2827
"@npm//rxjs",
2928
],
@@ -40,6 +39,7 @@ ts_library(
4039
deps = [
4140
":node",
4241
"//packages/angular_devkit/architect",
42+
"//tests/angular_devkit/architect/node/jobs:jobs_test_lib",
4343
],
4444
)
4545

packages/angular_devkit/architect_cli/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ pkg_npm(
4040
"//packages/angular_devkit/architect:package.json",
4141
"//packages/angular_devkit/core:package.json",
4242
],
43+
tags = ["release-package"],
4344
deps = [
4445
":README.md",
4546
":architect_cli",

packages/angular_devkit/build_angular/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ pkg_npm(
233233
"//packages/angular_devkit/core:package.json",
234234
"//packages/ngtools/webpack:package.json",
235235
],
236+
tags = ["release-package"],
236237
deps = [
237238
":README.md",
238239
":build_angular",

0 commit comments

Comments
 (0)