annotate mrjunejune/deploy.sh @ 266:efaf4c63cc94

fix clean production bundle staging Recreate deployment staging before copying the Bazel bundle and verify required inference runtime paths before promoting it. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Fri, 07 Aug 2026 12:52:30 -0700
parents 1f9877b637e9
children a78f5986011f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
266
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
1 #!/usr/bin/env bash
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
2 set -euo pipefail
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
3
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
4 bazel build -c opt //mrjunejune:mrjunejune_server_bundle
99
684edfaf93b7 Updating deployment script
June Park <parkjune1995@gmail.com>
parents: 98
diff changeset
5
266
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
6 bundle="$(realpath bazel-bin/mrjunejune/mrjunejune_server_bundle)"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
7 staging="/opt/mrjunejune_server_bundle_new"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
8 active="/opt/mrjunejune_server_bundle_active"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
9
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
10 # Always create staging from an empty directory. Copying into an existing
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
11 # directory nests the bundle and can promote stale/incomplete runtime files.
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
12 sudo rm -rf "$staging"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
13 sudo mkdir -p "$staging"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
14 sudo cp -a "$bundle"/. "$staging"/
260
1f9877b637e9 Add Copilot-powered cyberpunk JRPG chat
MrJuneJune <mrjunejune@users.noreply.github.com>
parents: 207
diff changeset
15 sudo mv \
266
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
16 "$staging/mrjunejune_server" \
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
17 "$staging/mrjunejune_server_binary"
260
1f9877b637e9 Add Copilot-powered cyberpunk JRPG chat
MrJuneJune <mrjunejune@users.noreply.github.com>
parents: 207
diff changeset
18 sudo cp \
266
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
19 "$staging/mrjunejune/production_entrypoint.sh" \
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
20 "$staging/mrjunejune_server"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
21
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
22 required_runtime=(
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
23 "$staging/mrjunejune_server"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
24 "$staging/mrjunejune_server_binary"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
25 "$staging/mrjunejune/inference_stack.sh"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
26 "$staging/mrjunejune/inference_sidecar_launcher.sh"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
27 "$staging/mrjunejune/inference/copilot_sidecar.zip"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
28 "$staging/mrjunejune/inference/litellm_proxy.zip"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
29 "$staging/mrjunejune/inference/litellm_config.yaml"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
30 "$staging/+http_archive+copilot_cli_linux_x86_64/copilot"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
31 "$staging/rules_python++python+python_3_11_x86_64-unknown-linux-gnu/bin/python3"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
32 )
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
33 for runtime_path in "${required_runtime[@]}"; do
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
34 if [[ ! -e "$runtime_path" ]]; then
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
35 echo "Deployment bundle is missing runtime: $runtime_path" >&2
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
36 exit 1
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
37 fi
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
38 done
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
39
260
1f9877b637e9 Add Copilot-powered cyberpunk JRPG chat
MrJuneJune <mrjunejune@users.noreply.github.com>
parents: 207
diff changeset
40 sudo chmod +x \
266
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
41 "$staging/mrjunejune_server" \
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
42 "$staging/mrjunejune/inference_stack.sh" \
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
43 "$staging/mrjunejune/inference_sidecar_launcher.sh" \
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
44 "$staging/+http_archive+copilot_cli_linux_x86_64/copilot"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
45 sudo chown -R mrjunejune_server:zenbu_team "$staging"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
46
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
47 # Persistent database, config, and Copilot tokens stay outside the immutable
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
48 # bundle and survive swaps.
207
58d9b64d8dca Updated deployment script to include sqlite3
MrJuneJune <me@mrjunejune.com>
parents: 102
diff changeset
49 sudo mkdir -p /opt/data/mrjunejune/
58d9b64d8dca Updated deployment script to include sqlite3
MrJuneJune <me@mrjunejune.com>
parents: 102
diff changeset
50 sudo chown -R mrjunejune_server:zenbu_team /opt/data/mrjunejune/
99
684edfaf93b7 Updating deployment script
June Park <parkjune1995@gmail.com>
parents: 98
diff changeset
51
684edfaf93b7 Updating deployment script
June Park <parkjune1995@gmail.com>
parents: 98
diff changeset
52 # Swap
266
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
53 sudo rm -rf "$active"
efaf4c63cc94 fix clean production bundle staging
MrJuneJune <me@mrjunejune.com>
parents: 260
diff changeset
54 sudo mv "$staging" "$active"
99
684edfaf93b7 Updating deployment script
June Park <parkjune1995@gmail.com>
parents: 98
diff changeset
55
98
5c47eab8032d Updated deploy script
June Park <parkjune1995@gmail.com>
parents: 97
diff changeset
56 sudo systemctl restart mrjunejune_server.service
5c47eab8032d Updated deploy script
June Park <parkjune1995@gmail.com>
parents: 97
diff changeset
57 echo "Deployment complete!"