Repository navigation
Expand file tree
/
Copy pathdeploy.sh
More file actions
executable file
·76 lines (62 loc) · 2.23 KB
/
Copy pathdeploy.sh
File metadata and controls
executable file
·76 lines (62 loc) · 2.23 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Exit immediately if a command exits with a non-zero status.
set -e
# Configuration
ENV_FILE="./.env"
GCP_PROJECT_ID=${1:-''}
GCP_REGION=${2:-''}
# --- Helper Functions ---
# Function to read a specific key from the .env file
get_env_key() {
local key_name=$1
# Note: This sed command handles optional quotes and trimming whitespace/comments
local value=$(grep "^${key_name}=" "$ENV_FILE" | cut -d '=' -f 2- | tr -d '[:space:]' | sed 's/^"//;s/"$//;s/#[[:space:]]*.*//')
echo "$value"
}
# --- Validation and Variable Loading ---
if [ ! -f "$ENV_FILE" ]; then
echo "Error: .env file not found at $ENV_FILE"
exit 1
fi
if [ -z "$GCP_PROJECT_ID" ] || [ -z "$GCP_REGION" ]; then
echo "Usage: ./deploy.sh [GCP_PROJECT_ID] [GCP_REGION]"
echo "Example: ./deploy.sh my-gcp-project us-central1"
exit 1
fi
# Read the required keys
SERVER_API_KEY=$(get_env_key "SERVER_API_KEY")
MAPS_API_KEY=$(get_env_key "MAPS_API_KEY")
# Validate that keys were successfully read
if [ -z "$SERVER_API_KEY" ]; then
echo "Error: SERVER_API_KEY is missing or empty in $ENV_FILE"
exit 1
fi
if [ -z "$MAPS_API_KEY" ]; then
echo "Error: MAPS_API_KEY is missing or empty in $ENV_FILE"
exit 1
fi
echo "--- Deploying to Google Cloud Run ---"
echo "Project: $GCP_PROJECT_ID"
echo "Region: $GCP_REGION"
# Execute the gcloud deploy command, passing the read variables securely
gcloud run deploy grounding-lite-app \
--source . \
--region "$GCP_REGION" \
--platform managed \
--allow-unauthenticated \
--set-env-vars SERVER_API_KEY="$SERVER_API_KEY",MAPS_API_KEY="$MAPS_API_KEY" \
--project "$GCP_PROJECT_ID"
echo "Deployment command completed."