2018-02-22 15:07:17 -05:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2018-03-30 16:48:47 -04:00
|
|
|
set -u -e -o pipefail
|
|
|
|
|
2020-04-08 15:19:05 -04:00
|
|
|
# Runs the pre-check before performing the publish to ensure
|
|
|
|
# the version is valid for release.
|
|
|
|
exec "$(dirname "$0")/pre-check";
|
|
|
|
|
2018-02-22 15:07:17 -05:00
|
|
|
# Use for BETA and RC releases
|
2018-03-30 16:48:47 -04:00
|
|
|
# Query Bazel for npm_package and ng_package rules with tags=["release-with-framework"]
|
2018-03-30 12:45:42 -04:00
|
|
|
# Publish them to npm (tagged next)
|
2018-04-05 16:01:25 -04:00
|
|
|
|
2018-11-01 15:47:39 -04:00
|
|
|
# We need to resolve the Bazel binary in the node modules because running Bazel
|
2020-03-18 17:40:26 -04:00
|
|
|
# through `yarn bazelisk` causes additional output that throws off the command stdout.
|
|
|
|
BAZEL_BIN=$(yarn bin)/bazelisk
|
2018-11-29 20:10:29 -05:00
|
|
|
# Build into a distinct output location so that artifacts from previous builds are not reused
|
|
|
|
BAZEL_OUTPUT_BASE=$(mktemp -d -t angular-release-next.XXXXXXX)
|
|
|
|
BAZEL="$BAZEL_BIN --output_base=$BAZEL_OUTPUT_BASE"
|
2018-11-01 15:47:39 -04:00
|
|
|
|
2018-04-05 16:01:25 -04:00
|
|
|
# query for all npm packages to be released as part of the framework release
|
2019-12-29 13:51:44 -05:00
|
|
|
NPM_PACKAGE_LABELS=`${BAZEL_BIN} query --output=label 'attr("tags", "\[.*release-with-framework.*\]", //packages/...) intersect kind("ng_package|pkg_npm", //packages/...)'`
|
2018-04-05 16:01:25 -04:00
|
|
|
# build all npm packages in parallel
|
2018-11-29 20:10:29 -05:00
|
|
|
$BAZEL build --config=release $NPM_PACKAGE_LABELS
|
2018-04-05 16:01:25 -04:00
|
|
|
# publish all packages in sequence to make it easier to spot any errors or warnings
|
|
|
|
for packageLabel in $NPM_PACKAGE_LABELS; do
|
|
|
|
echo "publishing $packageLabel"
|
2019-10-31 12:15:25 -04:00
|
|
|
$BAZEL run --config=release -- ${packageLabel}.publish --access public --tag next
|
2018-03-30 16:48:47 -04:00
|
|
|
done
|