Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,24 +48,40 @@ cmd_deploy() {
}

cmd_migrate() {
local app_name
local app_name instance_name
app_name="$(resolve_app_name)"
echo "==> Running database migrations (app=$app_name)..."
uv run python scripts/migrate.py --app-name "$app_name"
instance_name="$(resolve_instance_name)"
echo "==> Running database migrations (app=$app_name, instance=$instance_name)..."
uv run python scripts/migrate.py --app-name "$app_name" --instance "$instance_name"
}

cmd_start() {
echo "==> Starting app..."
databricks bundle run claw_app --target "$TARGET"
}

_bundle_json=""
_resolve_bundle_json() {
# Cache the bundle validate JSON for repeated lookups
if [[ -z "$_bundle_json" ]]; then
_bundle_json="$(databricks bundle validate --target "$TARGET" -o json 2>/dev/null)"
fi
}

resolve_app_name() {
# Resolve the deployed app name from the bundle (respects name_prefix variable)
databricks bundle validate --target "$TARGET" -o json 2>/dev/null \
_resolve_bundle_json
echo "$_bundle_json" \
| python3 -c "import sys,json; b=json.load(sys.stdin); print(list(b['resources']['apps'].values())[0]['name'])" \
2>/dev/null || echo "claw-claw"
}

resolve_instance_name() {
_resolve_bundle_json
echo "$_bundle_json" \
| python3 -c "import sys,json; b=json.load(sys.stdin); print(list(b['resources']['database_instances'].values())[0]['name'])" \
2>/dev/null || echo "claw-claw-db"
}

cmd_app_deploy() {
local app_name
app_name="$(resolve_app_name)"
Expand Down
Loading