AI_UIAutomation/scripts/run-overnight-android-then-...

46 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# 过夜链(无人值守):先 Android 全量 P0,再 iOS(先删非白名单 → 添加 → 控制)。
# 1) Android P0:run-p0-all.sh(自带 reset-except 清非白名单 + ADD + CONTROL[BLE+WiFi] + 平台/账号)
# 2) iOS 添加:RESET_FIRST=1 先删非白名单(保留 Lock/Cam/Doorbell/Blind Tilt)再全量添加
# 3) iOS 控制:SKIP_PROTO_NET=1 → 不切 BLE/WiFi,按当前连接态(BLE+WiFi)控制(iOS 无 adb 切网)
# 启动:nohup caffeinate -dimsu bash scripts/run-overnight-android-then-ios.sh > reports/overnight-chain.out 2>&1 &
set -u
cd "$(dirname "$0")/.."
log(){ echo "[$(date '+%m-%d %H:%M:%S')] $*"; }
# 0) 清空上次报告产物(避免 SOAK .results.json 累计串扰 + 旧 HTML 混淆)。旧 HTML/日志先归档再清。
log "===== 清空上次报告产物 ====="
mkdir -p reports/archive
ts=$(date '+%Y%m%d-%H%M%S')
for f in reports/*.html reports/p0-all.log reports/ios-adds.log reports/ios-controls.log reports/overnight-chain.prev.out; do
[ -e "$f" ] && mv "$f" "reports/archive/$(basename "$f" | sed "s/\\(\\.[^.]*\\)$/_$ts\\1/")" 2>/dev/null
done
rm -f reports/.results.json
log "上次报告已归档到 reports/archive/,.results.json 已清空"
# 1) Android 全量 P0(等 adb 就绪,最多 30min)
log "等待 Android adb 设备就绪..."
for i in $(seq 1 30); do
if adb devices 2>/dev/null | grep -qE "device$"; then log " adb 设备就绪"; break; fi
log " 无 adb 设备,等待 ${i}/30 min..."; sleep 60
done
log "===== Android P0 全量开始 ====="
bash scripts/run-p0-all.sh
log "===== Android P0 全量结束 ====="
# 2) iOS 添加(RESET_FIRST=1 先删非白名单;需 WDA 在 8100)
if curl -s --max-time 5 http://localhost:8100/status >/dev/null 2>&1; then
log "===== iOS 添加开始(先 reset-except 删非白名单) ====="
RESET_FIRST=1 bash scripts/run-ios-adds.sh
log "===== iOS 添加结束 ====="
# 3) iOS 控制(SKIP_PROTO_NET=1,当前连接态控制,不切 BLE/WiFi)
log "===== iOS 控制开始 ====="
bash scripts/run-ios-controls.sh
log "===== iOS 控制结束 ====="
else
log "!! WDA(8100)不在线,跳过 iOS 阶段(检查 iproxy/WDA)"
fi
log "全链完成。报告:reports/*P0*.html(Android) + reports/iOSAll_*.html(iOS);日志 reports/p0-all.log / ios-adds.log / ios-controls.log / overnight-chain.out"