Containerized LKB worker (Dockerfile.lkb), Postgres-backed queue, auto-deploy timer, and eigensolid convergence check module. Build: 0 jobs (no Lean build needed)
50 lines
No EOL
1.3 KiB
Bash
50 lines
No EOL
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
REGISTRY="100.79.14.103:5000"
|
|
IMAGE="$REGISTRY/library/lkb-worker"
|
|
SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
HOST=$(uname -n)
|
|
|
|
case "$HOST" in
|
|
*neon*) WORKER_COUNT=12; PLATFORM="arm64" ;;
|
|
*) WORKER_COUNT=4; PLATFORM="amd64" ;;
|
|
esac
|
|
|
|
TAG="$PLATFORM"
|
|
|
|
echo "[auto-deploy] $HOST: checking $IMAGE:$TAG"
|
|
|
|
LAST_HASH_FILE="/tmp/lkb-worker-last-hash-$PLATFORM"
|
|
REMOTE_HASH=$(curl -s --connect-timeout 5 "$REGISTRY/v2/library/lkb-worker/manifests/$TAG" 2>/dev/null \
|
|
| sha256sum | cut -d' ' -f1)
|
|
|
|
if [ -z "$REMOTE_HASH" ]; then
|
|
echo "[auto-deploy] WARNING: cannot reach registry, skipping pull check"
|
|
exit 0
|
|
fi
|
|
|
|
if [ -f "$LAST_HASH_FILE" ]; then
|
|
LOCAL_HASH=$(cat "$LAST_HASH_FILE")
|
|
if [ "$REMOTE_HASH" = "$LOCAL_HASH" ]; then
|
|
echo "[auto-deploy] image unchanged, nothing to do"
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
echo "[auto-deploy] new image detected, pulling..."
|
|
podman pull --tls-verify=false "$IMAGE:$TAG"
|
|
|
|
echo "$REMOTE_HASH" > "$LAST_HASH_FILE"
|
|
|
|
RUNNING=$(podman ps --format "{{.Names}}" | grep lkb-worker || true)
|
|
for name in $RUNNING; do
|
|
echo "[auto-deploy] restarting $name"
|
|
podman rm -f "$name"
|
|
done
|
|
|
|
for i in $(seq 1 "$WORKER_COUNT"); do
|
|
podman run -d --rm --name "lkb-worker-$i" --network host "$IMAGE:$TAG" worker
|
|
done
|
|
|
|
echo "[auto-deploy] $WORKER_COUNT workers restarted from $IMAGE:$TAG (hash: $REMOTE_HASH)" |