build: publish build tools on github (#5458)

* Publishes the material2-build-tools on Github.
This commit is contained in:
Paul Gschwendtner
2017-07-06 01:29:52 +02:00
committed by mmalerba
parent 45624077c6
commit 0675568d03
8 changed files with 137 additions and 189 deletions
-9
View File
@@ -7,19 +7,10 @@
const path = require('path');
const tsconfigPath = path.join(__dirname, 'tools/gulp/tsconfig.json');
const tsconfig = require(tsconfigPath);
// Register TS compilation.
require('ts-node').register({
project: tsconfigPath
});
// The gulp tsconfig file maps specific imports to relative paths. In combination with ts-node
// this doesn't work because the JavaScript output will still refer to the imports instead of
// to the relative path. Tsconfig-paths can be used to support path mapping inside of Node.
require("tsconfig-paths").register({
baseUrl: path.dirname(tsconfigPath),
paths: tsconfig.compilerOptions.paths
});
require('./tools/gulp/gulpfile');
+8 -163
View File
@@ -212,12 +212,6 @@
"integrity": "sha1-ZZC1zm53lVbJzHBDvWRJ1rwHgd4=",
"dev": true
},
"@types/chalk": {
"version": "0.4.31",
"resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz",
"integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=",
"dev": true
},
"@types/fs-extra": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-3.0.3.tgz",
@@ -231,9 +225,9 @@
"dev": true
},
"@types/gulp": {
"version": "3.8.32",
"resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-3.8.32.tgz",
"integrity": "sha1-g8WcaBzCM9Hsf4LSaVVVZvoTMVY=",
"version": "3.8.33",
"resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-3.8.33.tgz",
"integrity": "sha512-3UpA2pkKO40cNPe/8bxMQFWSASR9Jx67JfN9Z2Cf6ogfDMwXgEHm2XjKmuLYEtrp1IHYApOWlYMLYNgtTJgSAw==",
"dev": true
},
"@types/hammerjs": {
@@ -873,20 +867,6 @@
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dev": true
},
"browser-resolve": {
"version": "1.11.2",
"resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
"integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
"dev": true,
"dependencies": {
"resolve": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
"integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
"dev": true
}
}
},
"browserslist": {
"version": "1.7.7",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
@@ -935,12 +915,6 @@
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
"dev": true
},
"bufferstreams": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.1.tgz",
"integrity": "sha1-AWE3MGCsWYjv+ZBYcxEU9uGV1R4=",
"dev": true
},
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
@@ -1062,12 +1036,6 @@
"integrity": "sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo=",
"dev": true
},
"clean-css": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.5.tgz",
"integrity": "sha1-0JqHoCpTdRF1iXlq52oGPKzbVBo=",
"dev": true
},
"cli-boxes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
@@ -2395,12 +2363,6 @@
"integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=",
"dev": true
},
"es6-promise": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
"integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=",
"dev": true
},
"es6-set": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
@@ -5704,12 +5666,6 @@
}
}
},
"gulp-clean-css": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.5.0.tgz",
"integrity": "sha1-1D50fEGVeZXsSbuWEvhitkMp8bA=",
"dev": true
},
"gulp-cli": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-1.3.0.tgz",
@@ -6004,20 +5960,6 @@
"integrity": "sha1-jP1kIJ5TysUs17j2qLXZ6nl5UXI=",
"dev": true
},
"gulp-htmlmin": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/gulp-htmlmin/-/gulp-htmlmin-3.0.0.tgz",
"integrity": "sha1-GeqAAtEjHWsfGKEtIPKmand3D7M=",
"dev": true,
"dependencies": {
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
}
}
},
"gulp-if": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz",
@@ -6042,12 +5984,6 @@
"integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=",
"dev": true
},
"gulp-sass": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.1.0.tgz",
"integrity": "sha1-U9xLaKH13f5EJKtMJHZVJpqLdLc=",
"dev": true
},
"gulp-transform": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/gulp-transform/-/gulp-transform-2.0.0.tgz",
@@ -6206,12 +6142,6 @@
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
"dev": true
},
"he": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
"dev": true
},
"header-case": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz",
@@ -6254,20 +6184,6 @@
"integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=",
"dev": true
},
"html-minifier": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.2.tgz",
"integrity": "sha1-1zvD/0SJQkCIGM5gm/P7DqfvTrc=",
"dev": true,
"dependencies": {
"uglify-js": {
"version": "3.0.22",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.22.tgz",
"integrity": "sha512-VEC+Qdr615ZEbmf8xV+F9gKpX8mEJpB+lnYgNBkIgRkogz8eGzzZM1TbrS+FOqIvISdOrnQICQIBzt/fMlwUEQ==",
"dev": true
}
}
},
"html-tags": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz",
@@ -6530,12 +6446,6 @@
"integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=",
"dev": true
},
"is-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
"integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
"dev": true
},
"is-my-json-valid": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
@@ -7628,12 +7538,6 @@
}
}
},
"magic-string": {
"version": "0.21.3",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.21.3.tgz",
"integrity": "sha1-h+IBAJ6/3m9G3FdXMFpwr3HjFiQ=",
"dev": true
},
"make-dir": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz",
@@ -7781,9 +7685,9 @@
"dev": true
},
"merge2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.0.3.tgz",
"integrity": "sha1-+kT4siYmFaty8ICKQB1HinDjlNs=",
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.1.0.tgz",
"integrity": "sha1-mfsys16frYQBRgBOE6VrdUmlJNs=",
"dev": true
},
"methmeth": {
@@ -8068,12 +7972,6 @@
"integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
"dev": true
},
"ncname": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
"integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=",
"dev": true
},
"ncp": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
@@ -9212,12 +9110,6 @@
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
"dev": true
},
"relateurl": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
"dev": true
},
"remove-trailing-separator": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz",
@@ -9433,18 +9325,6 @@
"integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=",
"dev": true
},
"rollup": {
"version": "0.41.6",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-0.41.6.tgz",
"integrity": "sha1-4NBUl4d6OYwQTYFtJzOnGKepTio=",
"dev": true
},
"rollup-plugin-node-resolve": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz",
"integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=",
"dev": true
},
"router": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/router/-/router-1.3.1.tgz",
@@ -9500,12 +9380,6 @@
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
"dev": true
},
"sander": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
"integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=",
"dev": true
},
"sass-graph": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
@@ -9994,12 +9868,6 @@
}
}
},
"sorcery": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz",
"integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=",
"dev": true
},
"source-map": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
@@ -10012,12 +9880,6 @@
"integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
"dev": true
},
"sourcemap-codec": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.3.1.tgz",
"integrity": "sha1-mtb5vb1pGTEBbjCTnbyGhnMyMUY=",
"dev": true
},
"sparkles": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
@@ -10727,12 +10589,6 @@
"integrity": "sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I=",
"dev": true
},
"tryit": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
"integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
"dev": true
},
"ts-node": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.1.0.tgz",
@@ -10845,7 +10701,8 @@
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"dev": true
"dev": true,
"optional": true
},
"uglify-to-browserify": {
"version": "1.0.2",
@@ -11250,12 +11107,6 @@
"integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
"dev": true
},
"vlq": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz",
"integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=",
"dev": true
},
"void-elements": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
@@ -11540,12 +11391,6 @@
"integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=",
"dev": true
},
"xml-char-classes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
"integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=",
"dev": true
},
"xml-name-validator": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+3 -12
View File
@@ -17,7 +17,8 @@
"deploy": "gulp deploy:devapp",
"webdriver-manager": "webdriver-manager",
"docs": "gulp docs",
"api": "gulp api-docs"
"api": "gulp api-docs",
"postinstall": "npm install ./tools/package-tools/"
},
"version": "2.0.0-beta.7",
"license": "MIT",
@@ -45,10 +46,9 @@
"@angular/router": "~4.1.0",
"@angular/tsc-wrapped": "~4.1.0",
"@google-cloud/storage": "^1.1.1",
"@types/chalk": "^0.4.31",
"@types/fs-extra": "^3.0.1",
"@types/glob": "^5.0.30",
"@types/gulp": "3.8.32",
"@types/gulp": "^3.8.33",
"@types/hammerjs": "^2.0.34",
"@types/jasmine": "2.5.45",
"@types/merge2": "^0.3.30",
@@ -58,7 +58,6 @@
"autoprefixer": "^6.7.6",
"axe-core": "^2.2.1",
"axe-webdriverjs": "^1.1.1",
"chalk": "^1.1.3",
"conventional-changelog": "^1.1.3",
"dgeni": "^0.4.7",
"dgeni-packages": "^0.19.1",
@@ -70,17 +69,14 @@
"google-closure-compiler": "^20170218.0.0",
"gulp": "^3.9.1",
"gulp-clean": "^0.3.2",
"gulp-clean-css": "^3.3.1",
"gulp-cli": "^1.3.0",
"gulp-connect": "^5.0.0",
"gulp-dom": "^0.9.17",
"gulp-flatten": "^0.3.1",
"gulp-highlight-files": "^0.0.4",
"gulp-htmlmin": "^3.0.0",
"gulp-if": "^2.0.2",
"gulp-markdown": "^1.2.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.1.0",
"gulp-transform": "^2.0.0",
"hammerjs": "^2.0.8",
"highlight.js": "^9.11.0",
@@ -97,25 +93,20 @@
"karma-sauce-launcher": "^1.1.0",
"karma-sourcemap-loader": "^0.3.7",
"madge": "^1.6.0",
"magic-string": "^0.21.3",
"merge2": "^1.0.3",
"minimist": "^1.2.0",
"node-sass": "^4.5.3",
"protractor": "^5.1.2",
"request": "^2.81.0",
"resolve-bin": "^0.4.0",
"rollup": "^0.41.6",
"rollup-plugin-node-resolve": "^3.0.0",
"run-sequence": "^1.2.2",
"scss-bundle": "^2.0.1-beta.7",
"selenium-webdriver": "^3.4.0",
"sorcery": "^0.10.0",
"stylelint": "^7.10.1",
"ts-node": "^3.0.4",
"tsconfig-paths": "^2.2.0",
"tslint": "^5.2.0",
"typescript": "~2.2.1",
"uglify-js": "^2.8.14",
"web-animations-js": "^2.2.5"
}
}
+3
View File
@@ -28,6 +28,9 @@ $(npm bin)/gulp docs
./scripts/deploy/publish-build-artifacts.sh --no-build &
./scripts/deploy/publish-docs-content.sh --no-build &
# Publish the build tools of Angular Material on GitHub.
./scripts/deploy/publish-build-tools.sh &
# Deploy the screenshot and dashboard functions for each push build.
./scripts/deploy/deploy-screenshot-functions.sh &
./scripts/deploy/deploy-dashboard.sh &
+69
View File
@@ -0,0 +1,69 @@
#!/bin/bash
# Script that publishes the build and package tools of Angular Material to a Github repository.
# This allows other Angular projects like Flex-Layout to use the same packaging as in Material.
# The script should immediately exit if any command in the script fails.
set -e
# Go to the root of the project.
cd $(dirname ${0})/../..
if [ -z ${MATERIAL2_BUILDS_TOKEN} ]; then
echo "Error: No access token for GitHub could be found." \
"Please set the environment variable 'MATERIAL2_BUILDS_TOKEN'."
exit 1
fi
packageToolsPath="./tools/package-tools/"
packageToolsOutput="./dist/package-tools/"
buildVersion=$(node -pe "require('./package.json').version")
commitSha=$(git rev-parse --short HEAD)
commitAuthorName=$(git --no-pager show -s --format='%an' HEAD)
commitAuthorEmail=$(git --no-pager show -s --format='%ae' HEAD)
commitMessage=$(git log --oneline -n 1)
repoName="material2-build-tools"
repoUrl="https://github.com/angular/${repoName}.git"
repoDir="tmp/${repoName}"
# Build the package tools output.
$(npm bin)/tsc -p ${packageToolsPath}
# Copy the package.json and the license file to the output directory.
cp ${packageToolsPath}/package.json ${packageToolsOutput}
cp LICENSE ${packageToolsOutput}
# Prepare cloning the builds repository
rm -rf ${repoDir}
mkdir -p ${repoDir}
# Clone the repository and only fetch the last commit to download less unused data.
git clone ${repoUrl} ${repoDir} --depth 1
# Delete old files and copy the build files to the repository
rm -rf ${repoDir}/*
cp -r ${packageToolsOutput}/* ${repoDir}
# Create the build commit and push the changes to the repository.
cd ${repoDir}
# Replace all placeholders with a unique version that can be used to install the build-tools
# from Github.
sed -i "s/0.0.0-PLACEHOLDER/${buildVersion}-${commitSha}/g" package.json
# Prepare Git for pushing the artifacts to the repository.
git config user.name "${commitAuthorName}"
git config user.email "${commitAuthorEmail}"
git config credential.helper "store --file=.git/credentials"
echo "https://${MATERIAL2_BUILDS_TOKEN}:@github.com" > .git/credentials
git add -A
git commit -m "${commitMessage}"
git tag "${buildVersion}-${commitSha}"
git push origin master --tags
echo "Published the build tools for SHA ${commitSha} on Github."
+1 -5
View File
@@ -12,11 +12,7 @@
"target": "es5",
"types": [
"node"
],
"baseUrl": ".",
"paths": {
"material2-build-tools": ["../package-tools/index"]
}
]
},
"files": [
"gulpfile.ts"
+32
View File
@@ -0,0 +1,32 @@
{
"name": "material2-build-tools",
"description": "Build tools for Angular Material",
"version": "0.0.0-PLACEHOLDER",
"license": "MIT",
"main": "index.js",
"dependencies": {
"@types/chalk": "^0.4.31",
"@types/fs-extra": "^3.0.3",
"@types/glob": "^5.0.30",
"@types/gulp": "^3.8.33",
"@types/node": "^7.0.29",
"chalk": "^2.0.1",
"fs-extra": "^3.0.1",
"gulp-clean-css": "^3.5.0",
"gulp-connect": "^5.0.0",
"gulp-htmlmin": "^3.0.0",
"gulp-if": "^2.0.2",
"gulp-sass": "^3.1.0",
"magic-string": "^0.21.3",
"rollup": "^0.43.0",
"rollup-plugin-node-resolve": "^3.0.0",
"run-sequence": "^2.0.0",
"sorcery": "^0.10.0",
"uglify-js": "^2.8.29"
},
"peerDependencies": {
"@angular/tsc-wrapped": "~4.1.0",
"gulp": "^3.9.1",
"typescript": "~2.2.1"
}
}
+21
View File
@@ -0,0 +1,21 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"noUnusedParameters": true,
"lib": ["es2015", "dom"],
"module": "commonjs",
"moduleResolution": "node",
"baseUrl": ".",
"outDir": "../../dist/package-tools",
"strictNullChecks": true,
"noEmitOnError": true,
"noImplicitAny": true,
"target": "es5",
"types": [
"node"
]
},
"files": [
"./index.ts"
]
}