-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodal-deploy-versioned.sh
More file actions
executable file
·51 lines (43 loc) · 1.89 KB
/
modal-deploy-versioned.sh
File metadata and controls
executable file
·51 lines (43 loc) · 1.89 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
#!/bin/bash
# Deploy versioned simulation app to Modal
# Usage: ./modal-deploy-versioned.sh <modal-environment>
# Required env vars: POLICYENGINE_VERSION, POLICYENGINE_US_VERSION, POLICYENGINE_UK_VERSION
#
# Deploys a versioned app named policyengine-us{X}-uk{Y} and updates
# the Modal Dict version registries so Cloud Run can route to it.
# No separate gateway app — Cloud Run handles routing directly.
set -euo pipefail
MODAL_ENV="${1:?Modal environment required (staging or main)}"
# Validate required env vars
: "${POLICYENGINE_US_VERSION:?POLICYENGINE_US_VERSION must be set}"
: "${POLICYENGINE_UK_VERSION:?POLICYENGINE_UK_VERSION must be set}"
: "${POLICYENGINE_VERSION:?POLICYENGINE_VERSION must be set}"
# Generate versioned app name (dots replaced with dashes)
US_VERSION_SAFE="${POLICYENGINE_US_VERSION//./-}"
UK_VERSION_SAFE="${POLICYENGINE_UK_VERSION//./-}"
APP_NAME="policyengine-v2-us${US_VERSION_SAFE}-uk${UK_VERSION_SAFE}"
echo "========================================"
echo "Deploying versioned Modal simulation app"
echo " Environment: $MODAL_ENV"
echo " App name: $APP_NAME"
echo " policyengine.py: ${POLICYENGINE_VERSION}"
echo " US version: ${POLICYENGINE_US_VERSION}"
echo " UK version: ${POLICYENGINE_UK_VERSION}"
echo "========================================"
# 1. Deploy the versioned app
echo ""
echo "Step 1: Deploying versioned app..."
export MODAL_APP_NAME="$APP_NAME"
uv run modal deploy --env="$MODAL_ENV" src/policyengine_api/modal/deploy.py
# 2. Update version registries
echo ""
echo "Step 2: Updating version registries..."
uv run python scripts/update_version_registry.py \
--app-name "$APP_NAME" \
--us-version "${POLICYENGINE_US_VERSION}" \
--uk-version "${POLICYENGINE_UK_VERSION}" \
--environment "$MODAL_ENV"
echo ""
echo "========================================"
echo "Deployment complete: $APP_NAME"
echo "========================================"