build(bazel): add version stamping (#10687)

This commit is contained in:
Jeremy Elbourn
2018-04-09 12:44:55 -07:00
committed by GitHub
parent a6ffd18b3d
commit 09a60bbc3e
6 changed files with 125 additions and 84 deletions
+6 -6
View File
@@ -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
+44 -44
View File
@@ -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
View File
@@ -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
View File
@@ -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,
)
+43
View File
@@ -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
View File
@@ -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 #