diff --git a/update.sh b/update.sh index 5a06ab6..a265831 100755 --- a/update.sh +++ b/update.sh @@ -45,9 +45,7 @@ git pull origin main || { GIT_PULL_FAILED=true; echo "[!] Git pull for main repo echo "[+] Syncing and updating submodules..." SUBMODULE_FAILED=false -# Only update server-core and dashboard-ui (Docker components) -# device-agent and device-agent-embedded are built separately -git submodule update --init --recursive --remote apps/server-core apps/dashboard-ui || { SUBMODULE_FAILED=true; echo "[!] Git submodule update skipped or failed."; } +git submodule update --init --recursive --remote || { SUBMODULE_FAILED=true; echo "[!] Git submodule update skipped or failed."; } # 2b. Build VitePress docs (non-blocking) echo "[+] Building VitePress documentation..." @@ -58,8 +56,9 @@ else echo "[!] apps/docs directory not found. Skipping docs build." fi -# 3. Hitung state hash (git + .env) untuk deteksi perubahan -CURRENT_HASH=$(echo "$(git rev-parse HEAD 2>/dev/null)$(git submodule status 2>/dev/null)$(sha256sum .env 2>/dev/null)" | sha256sum | cut -d" " -f1) +# 3. Hitung state hash (hanya server-core + dashboard-ui untuk rebuild detection) +# device-agent dan device-agent-embedded build terpisah, tidak mempengaruhi Docker build +DOCKER_HASH=$(echo "$(git rev-parse HEAD 2>/dev/null)$(git -C apps/server-core rev-parse HEAD 2>/dev/null)$(git -C apps/dashboard-ui rev-parse HEAD 2>/dev/null)$(sha256sum .env 2>/dev/null)" | sha256sum | cut -d" " -f1) # 4. Tentukan apakah perlu rebuild NEEDS_REBUILD=false @@ -74,11 +73,11 @@ elif [ ! -f "$STATE_FILE" ]; then NEEDS_REBUILD=true else PREVIOUS_HASH=$(cat "$STATE_FILE" 2>/dev/null || echo "") - if [ "$CURRENT_HASH" != "$PREVIOUS_HASH" ]; then - echo "[+] State hash changed. Rebuilding." + if [ "$DOCKER_HASH" != "$PREVIOUS_HASH" ]; then + echo "[+] Docker components changed. Rebuilding." NEEDS_REBUILD=true else - echo "[-] No changes detected. Skipping build and restart." + echo "[-] No Docker changes detected. Skipping build and restart." fi fi @@ -162,7 +161,7 @@ if [ "$NEEDS_REBUILD" = true ]; then docker image prune -f # Simpan state secara atomik (tmp + mv untuk cegah korupsi file) - echo "$CURRENT_HASH" > "$STATE_FILE.tmp" && mv "$STATE_FILE.tmp" "$STATE_FILE" + echo "$DOCKER_HASH" > "$STATE_FILE.tmp" && mv "$STATE_FILE.tmp" "$STATE_FILE" echo "=========================================" echo " Update & Deployment complete! "