This repository has no description
1#!/usr/bin/env bash
2# Build image (Cloud Build), push to Artifact Registry, deploy Cloud Run Job.
3#
4# Usage (from repo root):
5# ./questionnaire_job/deploy.sh
6#
7# Optional overrides:
8# PROJECT_ID=cleveland-464404-m0 JOB_NAME=tangled-questionnaire ./questionnaire_job/deploy.sh
9#
10# Requires .env at repo root with at least:
11# DB_CONNECTION_STRING=...
12# ANTHROPIC_API_KEY=...
13
14set -euo pipefail
15
16ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
17ENV_FILE="${ENV_FILE:-$ROOT/.env}"
18REGION="${REGION:-europe-west1}"
19REPOSITORY="${REPOSITORY:-tangled}"
20IMAGE_NAME="${IMAGE_NAME:-issue-questionnaire}"
21JOB_NAME="${JOB_NAME:-tangled-questionnaire}"
22TASK_TIMEOUT="${TASK_TIMEOUT:-3600}"
23MEMORY="${MEMORY:-2Gi}"
24CPU="${CPU:-2}"
25MAX_RETRIES="${MAX_RETRIES:-1}"
26
27PROJECT_ID="${PROJECT_ID:-$(gcloud config get-value project 2>/dev/null)}"
28if [[ -z "$PROJECT_ID" || "$PROJECT_ID" == "(unset)" ]]; then
29 echo "ERROR: Set PROJECT_ID or run: gcloud config set project YOUR_PROJECT_ID" >&2
30 exit 1
31fi
32
33if [[ ! -f "$ENV_FILE" ]]; then
34 echo "ERROR: Env file not found: $ENV_FILE" >&2
35 exit 1
36fi
37
38IMAGE="${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPOSITORY}/${IMAGE_NAME}:latest"
39
40echo "==> Project: $PROJECT_ID"
41echo "==> Region: $REGION"
42echo "==> Image: $IMAGE"
43echo "==> Job: $JOB_NAME"
44echo "==> Env file: $ENV_FILE"
45echo
46
47echo "==> Build & push (Cloud Build)"
48gcloud builds submit \
49 --project="$PROJECT_ID" \
50 --config="$ROOT/questionnaire_job/cloudbuild.yaml" \
51 "$ROOT"
52
53echo
54echo "==> Deploy Cloud Run Job"
55gcloud run jobs deploy "$JOB_NAME" \
56 --project="$PROJECT_ID" \
57 --region="$REGION" \
58 --image="$IMAGE" \
59 --env-vars-file="$ENV_FILE" \
60 --task-timeout="$TASK_TIMEOUT" \
61 --memory="$MEMORY" \
62 --cpu="$CPU" \
63 --max-retries="$MAX_RETRIES"
64
65echo
66echo "Done. Run for one issue (full URI):"
67echo " gcloud run jobs execute $JOB_NAME --project=$PROJECT_ID --region=$REGION \\"
68echo " --args='--issue-uri,at://did:plc:…/sh.tangled.repo.issue/…'"
69echo
70echo "Or by rkey (must be unique in tangled_issues):"
71echo " gcloud run jobs execute $JOB_NAME --project=$PROJECT_ID --region=$REGION \\"
72echo " --args='3lvzel2uo3a22'"