mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
build(bazel): add version stamping (#10687)
This commit is contained in:
@@ -3,9 +3,9 @@ workspace(name = "angular_material")
|
||||
# Add nodejs rules
|
||||
http_archive(
|
||||
name = "build_bazel_rules_nodejs",
|
||||
url = "https://github.com/bazelbuild/rules_nodejs/archive/0.6.0.zip",
|
||||
strip_prefix = "rules_nodejs-0.6.0",
|
||||
sha256 = "e8a2bb5ca51fbafb244bc507bcebcae33a63d969f47413b319a8dcce032845bf",
|
||||
url = "https://github.com/bazelbuild/rules_nodejs/archive/99166f8eb7fc628ca561acf9f9a51a1c26edadad.zip",
|
||||
strip_prefix = "rules_nodejs-99166f8eb7fc628ca561acf9f9a51a1c26edadad",
|
||||
sha256 = "338e8495e5d1fa16de7190106c5675372ff4a347f6004e203e84a168db96281e",
|
||||
)
|
||||
|
||||
# NOTE: this rule installs nodejs, npm, and yarn, but does NOT install
|
||||
@@ -28,9 +28,9 @@ sass_repositories()
|
||||
# Add TypeScript rules
|
||||
http_archive(
|
||||
name = "build_bazel_rules_typescript",
|
||||
url = "https://github.com/bazelbuild/rules_typescript/archive/df4a1a561d88e187438ac7791a5ac33995f2d317.zip",
|
||||
strip_prefix = "rules_typescript-df4a1a561d88e187438ac7791a5ac33995f2d317",
|
||||
sha256 = "51a84f156eeddf126e9370b5c193b4709eeb330448e2de5afcda40232e0b56bc",
|
||||
url = "https://github.com/bazelbuild/rules_typescript/archive/0.11.1.zip",
|
||||
strip_prefix = "rules_typescript-0.11.1",
|
||||
sha256 = "7406bea7954e1c906f075115dfa176551a881119f6820b126ea1eacb09f34a1a",
|
||||
)
|
||||
|
||||
# Setup TypeScript Bazel workspace
|
||||
|
||||
Generated
+44
-44
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "material2-srcs",
|
||||
"version": "6.0.0-rc.0",
|
||||
"version": "6.0.0-rc.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -49,17 +49,17 @@
|
||||
}
|
||||
},
|
||||
"@angular/animations": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-Fvc3FXP2eREUsPc6LztiTPZsG9+FAo99SO5lGtIOBypCs7Lrpnv5pH18RRRmmnF3xbqI+A+bCPQdu1w89fWDWA==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-uUx8n3rnORn3pVb1sPiPYRhCETsaLLLeygPKlfqcTqdO8/hUEdumGI0hfrn0rW8qK2x2Pwxvz2qNPkn4iGgwTg==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/bazel": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-nhbCzi6QXr4QQIvKqIXM6Prmo9PZ2H3COp0nIMZeoowEurHCSmT+d2KXYidOU5BJEaaNVjPwwbPw0imWjr92hQ==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-rGMT6FizevRBiOWrAiuIItf6IjyFVvBBR9pb/QG/FnbiddwOIRjJe1xTz6W9rrqfOTNUJws7aJLzFNUCxfS8uQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@bazel/typescript": "0.11.1",
|
||||
@@ -78,25 +78,25 @@
|
||||
}
|
||||
},
|
||||
"@angular/common": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-r7fOlEUGbXZUhoRDNuM8GvCs3y/yb6aTVgVdrK+2CZV0lbMJPoRCkfCVIdkJdMo3SZ9O+3At64hYu5WHr+heZQ==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-arc0LoT2opge2CDUXufN+TIjTUUx+N46MSWW1sKiLUzbK38E2nZ4S1RHoVDR6P7c6ruKMmaqZFJkOn6wd5Oi0w==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/compiler": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-kZFfgxlP49EGWoOd+wmsPKrCbaMvTK7aLmYhmdmxXLJJ8hIQZQGTfUEY1aV43j3oOu5nxWqchQKJnV1GRosyOA==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-ZRsAtThpSrXKQ0N64Wa7ovDXXQ333uyRKUqApNo0NskvWwURiiBU9gACR4KmJmBRo4PUyITkFnyOM+6QMFDGQQ==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/compiler-cli": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-bHzciEbIqe9rhXawBwF0GZQf5iYch2qxAut3eZZLI9n8uR0nb8XwuZwCuVhsg0WN9WTFyMfiyhWkWT2xu1pzEg==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-hpVAb3BaX7TaK2iUW91poi1txZv5GeP97qX5c1vTTzGfFveGT5a5zkTee9ihCdelYIl5wBObkRrcXWjVLSXIzw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chokidar": "1.7.0",
|
||||
@@ -106,71 +106,71 @@
|
||||
}
|
||||
},
|
||||
"@angular/core": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-lzt+lkYt44h7gV+hBVguD+kAfiERJfBgJyRH2PF8PzTjTwR23N/As4Dofr3ZT29s018eVe4lOoJWzPOg3FMdow==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-zB6bpFNx6Iefko6HKYMSKjyB0XJj8yAgK1G/Ozzb+hbSMmkVi+HetG4v0WXg4sn2mD5NGxj+7qz7tGAzhlBgdA==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/forms": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-amkbyf8tPFc5byJAywHIuD+ydQEt0gSd41hDhpH9T78N5PIoSSC/5sL3NfIhPNo4dfhDDpcHZVgyggylFanLew==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-YtXrhXzee77L3YrBY60Zgd9OV90CCKWv4uUTldeSKcjFYremgmRqQy73+V2eE9akTLiKseLTaVYdntTINUL8IQ==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/http": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/http/-/http-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-ZjMopT8XCNRRgajbk4cFYE91uoi5xBUM7JZdP7Hx2nl4lqe15NlS+j4i/F4dM/pwpdc2JKfR7KWyPuqiKdX0WQ==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/http/-/http-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-PN8W2OSeptAIJ5/CeZNGdRiTVHjuYfFSB+ZgBeWhQVBmIV5Lp5iTNDcGslEB9diMkJSNsh/jYtcA0YAFhirYhw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/platform-browser": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-N/565C7KCRvVg+u4WiXJcaZV8avsfUmSds2q2fuegSB7qeq5D5JcY1o3sVsalMT6BgNUE85gvhvaSs35bqbE/w==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-uMUAImcIbunqp9DKRSqokeAYWlyYFrqQAUpJNTeksUO9zkP2rPXlUi8ogZtEybHCc9XuoByC+UgC2IOMtmS82g==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/platform-browser-dynamic": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-hcXmfFC/PuOYSMg6wSqE1P0NA5fP6nN1GiJbXoEeF6cWAyAYPPL5n6wyoodgg/LuGa48VHmyHIMYOeKZ+s88CA==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-q5ZUvgGUuIVKx9I9++ovKXRssu5czNzr/1jgfzvh72a2+s5aVyVB8Zd164pdS6GSvi8lyApSNPBnBlRROHklbg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/platform-server": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-Akzlh9Yb4YNAwNq4J1BQlj/UcQQ0OJN6vc7G24jB/8hDPkUTURJIk0SwWZSoZvauuGKY45YxXJDjVEgOXxTDSA==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-gIzmma1RWrCwWnaqkOwaSAgNTjRASiCb5iPcOpYoAVwpbkhmRg2UWUYJNI0eDc/p4DHYyM2jET7IdbGrgy3hVw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"domino": "2.0.1",
|
||||
"domino": "2.0.2",
|
||||
"tslib": "1.9.0",
|
||||
"xhr2": "0.1.4"
|
||||
}
|
||||
},
|
||||
"@angular/router": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/router/-/router-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-rR5bEynWyqtjY+MPSk1rGjjVYtcfK/RHGdkoI0Eha293c7XfYvD1qKnxCwk2EvL23IP/2XYwmBP80P0jBA2RGw==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/router/-/router-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-H621WrhkGayCZlr7f6V2czVAZPPXCeAXqsGjt5MWgB+MzpPP/+lrqKMhku9ZDE0OrlDucU2g34oipGoh0tJW2g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@angular/upgrade": {
|
||||
"version": "6.0.0-rc.1",
|
||||
"resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-6.0.0-rc.1.tgz",
|
||||
"integrity": "sha512-/ZeZbb1NGgYYolSV6TWpOLlYvJAY03SwlOdzd6f9AYiY0X+m5ivX0DzCXa1nbSvXePebV6sEd3QV1Ln6SpXZNg==",
|
||||
"version": "6.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-6.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-9BgwY5/FZXr6ALWNhx0haOIl+qydmtwF3lmFFKAla32VQ5En0/Sbv9DgqZVQ5za6Sbva9ugUaxESW74/0vu3ag==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
@@ -4750,9 +4750,9 @@
|
||||
}
|
||||
},
|
||||
"domino": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/domino/-/domino-2.0.1.tgz",
|
||||
"integrity": "sha512-f08oiY92tD+GHNiBTZKWmU9l2dbpWEMC9/UX4hM2kD3TSONcfHmCR2llqZpcipSAtVMz/dVgLfg5tfxy7axwLw==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/domino/-/domino-2.0.2.tgz",
|
||||
"integrity": "sha512-vzykUakUw5s1p0RrN/vI2sShYo3pLRy/z7PM1PuOIZIlMOJ0XfOnrckGE5f4MxIQVe5XcrH7yG9mR+l77mgLVA==",
|
||||
"dev": true
|
||||
},
|
||||
"domutils": {
|
||||
|
||||
+13
-13
@@ -26,12 +26,12 @@
|
||||
"node": ">= 5.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular/animations": "6.0.0-rc.1",
|
||||
"@angular/common": "6.0.0-rc.1",
|
||||
"@angular/compiler": "6.0.0-rc.1",
|
||||
"@angular/core": "6.0.0-rc.1",
|
||||
"@angular/forms": "6.0.0-rc.1",
|
||||
"@angular/platform-browser": "6.0.0-rc.1",
|
||||
"@angular/animations": "6.0.0-rc.3",
|
||||
"@angular/common": "6.0.0-rc.3",
|
||||
"@angular/compiler": "6.0.0-rc.3",
|
||||
"@angular/core": "6.0.0-rc.3",
|
||||
"@angular/forms": "6.0.0-rc.3",
|
||||
"@angular/platform-browser": "6.0.0-rc.3",
|
||||
"core-js": "^2.4.1",
|
||||
"rxjs": "6.0.0-rc.0",
|
||||
"systemjs": "0.19.43",
|
||||
@@ -42,13 +42,13 @@
|
||||
"devDependencies": {
|
||||
"@angular-devkit/core": "^0.4.5",
|
||||
"@angular-devkit/schematics": "^0.4.5",
|
||||
"@angular/bazel": "6.0.0-rc.1",
|
||||
"@angular/compiler-cli": "6.0.0-rc.1",
|
||||
"@angular/http": "6.0.0-rc.1",
|
||||
"@angular/platform-browser-dynamic": "6.0.0-rc.1",
|
||||
"@angular/platform-server": "6.0.0-rc.1",
|
||||
"@angular/router": "6.0.0-rc.1",
|
||||
"@angular/upgrade": "6.0.0-rc.1",
|
||||
"@angular/bazel": "6.0.0-rc.3",
|
||||
"@angular/compiler-cli": "6.0.0-rc.3",
|
||||
"@angular/http": "6.0.0-rc.3",
|
||||
"@angular/platform-browser-dynamic": "6.0.0-rc.3",
|
||||
"@angular/platform-server": "6.0.0-rc.3",
|
||||
"@angular/router": "6.0.0-rc.3",
|
||||
"@angular/upgrade": "6.0.0-rc.3",
|
||||
"@bazel/ibazel": "0.3.1",
|
||||
"@google-cloud/storage": "^1.1.1",
|
||||
"@schematics/angular": "^0.4.5",
|
||||
|
||||
+16
-19
@@ -32,23 +32,20 @@ sass_bundle(
|
||||
output_name = "_theming.scss",
|
||||
)
|
||||
|
||||
# TODO(jelbourn): uncomment when 6.0.0-rc.1 comes out
|
||||
# Creates the @angular/material package published to npm.
|
||||
#ng_package(
|
||||
# name = "npm_package",
|
||||
# srcs = [
|
||||
# "package.json",
|
||||
# ],
|
||||
# entry_point = "src/lib/public_api.js",
|
||||
# entry_point_name = "material",
|
||||
# globals = ROLLUP_GLOBALS,
|
||||
# data = [
|
||||
# ":theming_bundle",
|
||||
# "//src/lib/prebuilt-themes:indigo-pink",
|
||||
# "//src/lib/prebuilt-themes:deeppurple-amber",
|
||||
# "//src/lib/prebuilt-themes:pink-bluegrey",
|
||||
# "//src/lib/prebuilt-themes:purple-green",
|
||||
# ],
|
||||
# packages = ["//src/lib/schematics:npm_package"],
|
||||
# deps = MATERIAL_TARGETS
|
||||
#)
|
||||
ng_package(
|
||||
name = "npm_package",
|
||||
srcs = ["package.json"],
|
||||
entry_point = "src/lib/public_api.js",
|
||||
entry_point_name = "material",
|
||||
globals = ROLLUP_GLOBALS,
|
||||
data = [
|
||||
":theming_bundle",
|
||||
"//src/lib/prebuilt-themes:indigo-pink",
|
||||
"//src/lib/prebuilt-themes:deeppurple-amber",
|
||||
"//src/lib/prebuilt-themes:pink-bluegrey",
|
||||
"//src/lib/prebuilt-themes:purple-green",
|
||||
],
|
||||
packages = ["//src/lib/schematics:npm_package"],
|
||||
deps = MATERIAL_TARGETS,
|
||||
)
|
||||
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Generates the data used by the stamping feature in bazel.
|
||||
# This script is intended to be used as a Bazel workspace_status_command, which
|
||||
# prints out a set of key-value pairs.
|
||||
# See https://github.com/angular/angular/blob/master/docs/BAZEL.md for more explanation
|
||||
set -u -e -E -o pipefail
|
||||
|
||||
function onError {
|
||||
echo "Failed to execute: $0"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Setup crash trap
|
||||
trap 'onError' ERR
|
||||
|
||||
if [[ "$(git tag)" == "" ]]; then
|
||||
echo "No git tags found, can't stamp the build."
|
||||
echo "Either fetch the tags:"
|
||||
echo " git fetch git@github.com:angular/material2.git --tags"
|
||||
echo "or build without stamping by giving an empty workspace_status_command:"
|
||||
echo " bazel build --workspace_status_command= ..."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Gets a human-readable name for HEAD, e.g. "6.0.0-rc.0-15-g846ddfa"
|
||||
git_version_raw=$(git describe --abbrev=7 --tags HEAD)
|
||||
|
||||
# Find out if there are any uncommitted local changes
|
||||
if [[ $(git status --untracked-files=no --porcelain) ]]; then
|
||||
local_changes_suffix=".with-local-changes";
|
||||
else
|
||||
local_changes_suffix="";
|
||||
fi
|
||||
|
||||
# Reformat `git describe` version string into a more semver-ish string
|
||||
# From: 5.2.0-rc.0-57-g757f886
|
||||
# To: 5.2.0-rc.0+57.sha-757f886
|
||||
# Or: 5.2.0-rc.0+57.sha-757f886.with-local-changes
|
||||
|
||||
semver_style_version="$(echo ${git_version_raw} | sed -E 's/-([0-9]+)-g/+\1.sha-/g')"
|
||||
version_stamp="${semver_style_version}${local_changes_suffix}"
|
||||
echo "BUILD_SCM_VERSION ${version_stamp}"
|
||||
+3
-2
@@ -36,8 +36,9 @@ test --test_output=errors
|
||||
build --experimental_ui
|
||||
test --experimental_ui
|
||||
|
||||
# Output to a more coventional location
|
||||
build --symlink_prefix=dist/bazel/
|
||||
# Configures script to do version stamping.
|
||||
# See https://docs.bazel.build/versions/master/user-manual.html#flag--workspace_status_command
|
||||
build --workspace_status_command=./tools/bazel-stamp-vars.sh
|
||||
|
||||
###############################
|
||||
# Typescript / Angular / Sass #
|
||||
|
||||
Reference in New Issue
Block a user