#!/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)"