Files
angular__angular/scripts/deploy/deploy-screenshot-tool.sh
T
Paul Gschwendtner 333ec80750 build: fix screenshot tool deployment (#6337)
* Currently the screenshot tool application is not built in the deploy script. This causes Firebase to throw an error because the target directory does not exist.
2017-08-08 13:26:33 -07:00

42 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# The script should immediately exit if any command in the script fails.
set -e
# This script deploys the Screenshot Tool and their Cloud Functions to Firebase.
# Before deploying, the script installs all dependencies of the functions and builds the app.
# Go to the project root directory
cd $(dirname ${0})/../..
if [ -z ${MATERIAL2_SCREENSHOT_FIREBASE_DEPLOY_TOKEN} ]; then
echo "Error: No access token for firebase specified." \
"Please set the environment variable 'MATERIAL2_SCREENSHOT_FIREBASE_DEPLOY_TOKEN'."
exit 1
fi
# Path to the screenshot tool in the project.
screenshotToolFolder="tools/screenshot-test"
# Path to the firebase binary of the root package.json
firebaseBin=$(npm bin)/firebase
# Go to the screenshot-test folder because otherwise Firebase tries to deploy the wrong project.
cd ${screenshotToolFolder}
# Install node_modules for the application and afterwards build the application in production.
(npm install; $(npm bin)/ng build --aot -prod) &
# Install node modules for screenshot-tool functions. Firebase CLI needs to execute the functions
# to collect all function names before it can deploy them.
(cd functions; npm install) &
# The screenshot application is being built asynchronously. Also the dependencies for the
# Cloud Functions are built asynchronously. This means that the script needs to wait for all
# async tasks to finish before proceeding.
wait
# Deploy the screenshot application and their functions to Firebase
${firebaseBin} deploy --token ${MATERIAL2_SCREENSHOT_FIREBASE_DEPLOY_TOKEN} --non-interactive \
--project material2-screenshots