fix: update all submodules recursively, but only detect Docker changes
- Use --recursive to update all submodules (including device-agent) - Hash only server-core + dashboard-ui for rebuild detection - device-agent and device-agent-embedded don't trigger Docker rebuild
This commit is contained in:
@@ -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! "
|
||||
|
||||
Reference in New Issue
Block a user