1#!/bin/bash 2# Copyright (C) 2018 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15 16set -e 17 18readonly CUR_DIR="$(cd -P ${BASH_SOURCE[0]%/*}; pwd)" 19readonly ROOT_DIR=$(dirname $(dirname "$CUR_DIR")) 20readonly NODE_DIR="$ROOT_DIR/buildtools/nodejs/bin" 21readonly WRAPPER="$ROOT_DIR/gn/standalone/build_tool_wrapper.py" 22 23cd $CUR_DIR 24 25function echo_and_do { 26 echo $@ 27 $@ 28} 29 30function npm { 31 echo_and_do python "$WRAPPER" --path $NODE_DIR npm $@ 32} 33 34CLEAN_OUT_DIR=true 35DEPLOY_PROD=false 36DEPLOY_STAGING=false 37 38while [[ $# -gt 0 ]]; do 39 key="$1" 40 case $key in 41 --no-clean) 42 CLEAN_OUT_DIR=false 43 shift 44 ;; 45 --prod) 46 DEPLOY_PROD=true 47 shift 48 ;; 49 --staging) 50 DEPLOY_STAGING=true 51 shift 52 ;; 53 -h|--help) 54 echo "Usage: $0 [--no-clean] [--prod] [--staging]" 55 echo " --no-clean Don't remove the out directory" 56 echo " --prod Deploy prod version (implies --release)" 57 echo " --staging Deploy staging version" 58 echo " -h|--help Display this message" 59 exit 0 60 shift 61 ;; 62 esac 63done 64 65if [ "$CLEAN_OUT_DIR" = true ]; then 66 npm run clean 67fi 68 69npm run build 70 71if [ "$DEPLOY_PROD" = true ]; then 72 echo_and_do gcloud app deploy app.yaml --project perfetto-site \ 73 -v prod --promote --stop-previous-version 74elif [ "$DEPLOY_STAGING" = true ]; then 75 echo_and_do gcloud app deploy app.yaml --project perfetto-site \ 76 -v staging --no-promote --stop-previous-version 77else 78 echo_and_do gcloud app deploy app.yaml --project perfetto-site \ 79 -v $USER --no-promote --stop-previous-version 80fi 81