mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
d859d34739
Currently whenever something fails in the deploy script it will likely not cause the CI to show the failure. This is because Bash by default doesn't exit the process with the proper error code.
38 lines
1.4 KiB
Bash
Executable File
38 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# The script should immediately exit if any command in the script fails.
|
|
set -e
|
|
|
|
# This script deploys the Dashboard App and their Cloud Functions to Firebase.
|
|
# Before the script installs all dependencies and builds the dashboard app in production.
|
|
|
|
# Go to the project root directory
|
|
cd $(dirname ${0})/../..
|
|
|
|
if [ -z ${MATERIAL2_BOARD_FIREBASE_DEPLOY_KEY} ]; then
|
|
echo "Error: No access token for firebase specified." \
|
|
"Please set the environment variable 'MATERIAL2_DASHBOARD_ACCESS_TOKEN'."
|
|
exit 1
|
|
fi
|
|
|
|
# Paths to the dashboard and functions directories.
|
|
dashboardFolder=tools/dashboard
|
|
|
|
# Go to the dashboard folder because otherwise the Firebase CLI tries to deploy the wrong project.
|
|
cd ${dashboardFolder}
|
|
|
|
# Install node_modules for the dashboard and afterwards build the dashboard app in production.
|
|
(npm install; $(npm bin)/ng build --aot -prod) &
|
|
|
|
# Install node modules for dashboard functions. Firebase CLI needs to execute the functions
|
|
# to collect all function names before it can deploy them.
|
|
(cd functions; npm install) &
|
|
|
|
# The dashboard and function dependencies are installed concurrently. Also the dashboard app is
|
|
# build in production afterwards. Wait for all async tasks to finish before proceeding.
|
|
wait
|
|
|
|
# Deploy the dashboard to Firebase. Based on the current configuration hosting and functions
|
|
# will be deployed.
|
|
$(npm bin)/firebase deploy --token ${MATERIAL2_BOARD_FIREBASE_DEPLOY_KEY} --project material2-board
|