forked from jroo/hourglass
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeploy-travis.sh
executable file
·40 lines (30 loc) · 1.07 KB
/
deploy-travis.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
# DEPLOY_ENV must be set to "dev", "staging", or "prod"
# CF_DEV_USER, CF_STAGING_USER, CF_PROD_USER, and the associated
# CF_DEV_PASSWORD, CF_STAGING_PASSWORD, and CF_PROD_PASSWORD
# are defined as private Environment Variables
# in the Travis web UI: https://travis-ci.org/18F/calc/settings
set -e
if [[ "$DEPLOY_ENV" = "dev" ]]; then
DEPLOY_USER="$CF_DEV_USER"
DEPLOY_PASS="$CF_DEV_PASSWORD"
elif [[ "$DEPLOY_ENV" = "staging" ]]; then
DEPLOY_USER="$CF_STAGING_USER"
DEPLOY_PASS="$CF_STAGING_PASSWORD"
elif [[ "$DEPLOY_ENV" = "prod" ]]; then
DEPLOY_USER="$CF_PROD_USER"
DEPLOY_PASS="$CF_PROD_PASSWORD"
else
echo "Unrecognized or missing DEPLOY_ENV. Exiting."
exit 1
fi
API="https://api.fr.cloud.gov"
ORG="fas-calc"
SPACE="$DEPLOY_ENV"
APP_NAME="calc-$DEPLOY_ENV"
MANIFEST="manifests/manifest-$DEPLOY_ENV.yml"
echo "Deploying to $DEPLOY_ENV space."
cf login -a $API -u $DEPLOY_USER -p $DEPLOY_PASS -o $ORG -s $SPACE
# scale down the app instances to avoid overrunning our memory allotment
cf scale -i 1 $APP_NAME
cf zero-downtime-push $APP_NAME -f $MANIFEST