Commit 69b794b6 authored by dsq's avatar dsq

时间汇总

parent 58a25ff3
......@@ -177,6 +177,8 @@ echo "------------------------------------------------------------"
TOTAL_COUNT=0
SUCCESS_COUNT=0
ERR_MSGS=()
PUSH_TIMES=()
set +e
for TARGET_ID in "${DEVICE_IDS[@]}"; do
for BUILD_MODE in "${BUILD_MODES[@]}"; do
......@@ -207,7 +209,9 @@ while true; do
fi
DEL_RETRY=$((DEL_RETRY + 1))
if [ $DEL_RETRY -ge 5 ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:清理未完全,HAP包=${HAP_EXISTS}, libs中间产物=${LIBS_EXISTS},须清光后再打包)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:清理未完全,HAP包=${HAP_EXISTS}, libs中间产物=${LIBS_EXISTS},须清光后再打包)"
echo "$_e"
ERR_MSGS+=("$_e")
continue 2
fi
sleep 1
......@@ -242,11 +246,15 @@ elif [ "$PLATFORM" = "iosSimulatorArm64" ]; then
./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64 2>&1 | tee "$GRADLE_OUT"
GRADLE_RET=${PIPESTATUS[0]}
else
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:不支持的平台 $PLATFORM)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:不支持的平台 $PLATFORM)"
echo "$_e"
ERR_MSGS+=("$_e")
continue
fi
if [ $GRADLE_RET -ne 0 ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:Gradle publish 未成功,exit code $GRADLE_RET)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:Gradle publish 未成功,exit code $GRADLE_RET)"
echo "$_e"
ERR_MSGS+=("$_e")
echo " >>> 命令错误输出(含具体文件/配置报错):"
[ -f "$GRADLE_OUT" ] && cat "$GRADLE_OUT" | tail -80
rm -f "$GRADLE_OUT"
......@@ -266,7 +274,9 @@ else
fi
if [ ! -d "$HARMONY_APP_DIR" ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:harmonyApp 目录不存在 $HARMONY_APP_DIR)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:harmonyApp 目录不存在 $HARMONY_APP_DIR)"
echo "$_e"
ERR_MSGS+=("$_e")
continue
fi
cd "$HARMONY_APP_DIR"
......@@ -274,7 +284,9 @@ HVIGOR_OUT="/tmp/runOhos_hvigor_$$.out"
ohpm install --all 2>&1 | tee "$HVIGOR_OUT"
OHPM_RET=${PIPESTATUS[0]}
if [ $OHPM_RET -ne 0 ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:ohpm install 失败)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:ohpm install 失败)"
echo "$_e"
ERR_MSGS+=("$_e")
echo " >>> 命令错误输出:"
[ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80
rm -f "$HVIGOR_OUT"
......@@ -286,7 +298,9 @@ rm -f "$HVIGOR_OUT"
node "$DEVECO_HOME/tools/hvigor/bin/hvigorw.js" --sync -p product=default -p buildMode="$BUILD_MODE" --analyze=normal --parallel --incremental --daemon 2>&1 | tee "$HVIGOR_OUT"
HVIGOR_SYNC_RET=${PIPESTATUS[0]}
if [ $HVIGOR_SYNC_RET -ne 0 ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:hvigor --sync 失败,请查看下方输出中的文件/配置名)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:hvigor --sync 失败,请查看下方输出中的文件/配置名)"
echo "$_e"
ERR_MSGS+=("$_e")
echo " >>> 命令错误输出:"
[ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80
rm -f "$HVIGOR_OUT"
......@@ -302,7 +316,9 @@ else
fi
HVIGOR_ASM_RET=${PIPESTATUS[0]}
if [ $HVIGOR_ASM_RET -ne 0 ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:hvigor assembleHap 失败,请查看下方输出中的文件/配置名)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:hvigor assembleHap 失败,请查看下方输出中的文件/配置名)"
echo "$_e"
ERR_MSGS+=("$_e")
echo " >>> 命令错误输出:"
[ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80
rm -f "$HVIGOR_OUT"
......@@ -318,12 +334,16 @@ SIGNED_HAP="entry-default-signed.hap"
HAP_FILE="$HAP_DIR/$SIGNED_HAP"
# Check if signed HAP package exists
if [ ! -f "$HAP_FILE" ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:未找到已签名 HAP 包 $HAP_FILE)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:未找到已签名 HAP 包 $HAP_FILE)"
echo "$_e"
ERR_MSGS+=("$_e")
cd "$SCRIPT_DIR"
continue
fi
if ! echo "$AVAILABLE_TARGETS" | grep -q "$TARGET_ID"; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:设备离线或未连接)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:设备离线或未连接)"
echo "$_e"
ERR_MSGS+=("$_e")
cd "$SCRIPT_DIR"
continue
fi
......@@ -347,7 +367,9 @@ if echo "$INSTALL_OUTPUT" | grep -qE "failed|Failed|error|Error"; then
sleep 5
fi
if echo "$INSTALL_OUTPUT" | grep -qE "failed|Failed|error|Error"; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:安装失败 bm install)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:安装失败 bm install)"
echo "$_e"
ERR_MSGS+=("$_e")
echo " >>> $INSTALL_OUTPUT"
cd "$SCRIPT_DIR"
continue
......@@ -368,7 +390,9 @@ END_TIME=$(date +%s)
AA_START_RESULT=$?
# Check if screen lock error
if echo "$AA_START_OUTPUT" | grep -q "10106102\|screen is locked"; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:设备屏幕已锁定,请解锁后重试)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:设备屏幕已锁定,请解锁后重试)"
echo "$_e"
ERR_MSGS+=("$_e")
cd "$SCRIPT_DIR"
continue
fi
......@@ -391,7 +415,9 @@ while [ $COUNT -lt $MAX_WAIT ]; do
done
if [ -z "$APP_PID" ]; then
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:应用在 ${MAX_WAIT}s 内未启动,请检查设备与安装结果)"
_e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:应用在 ${MAX_WAIT}s 内未启动,请检查设备与安装结果)"
echo "$_e"
ERR_MSGS+=("$_e")
echo " >>> aa start 输出: $AA_START_OUTPUT"
cd "$SCRIPT_DIR"
continue
......@@ -404,6 +430,7 @@ ELAPSED_TOTAL=$((END_TIME - START_TIME))
echo " - SO build time: $((ELAPSED_SO/60))m$((ELAPSED_SO%60))s (${ELAPSED_SO}s)"
echo " - HAP package and push time: $((ELAPSED_HAP_PUSH/60))m$((ELAPSED_HAP_PUSH%60))s (${ELAPSED_HAP_PUSH}s)"
echo " - Total time: $((ELAPSED_TOTAL/60))m$((ELAPSED_TOTAL%60))s (${ELAPSED_TOTAL}s)"
PUSH_TIMES+=("$TARGET_ID | $BUILD_MODE | SO:${ELAPSED_SO}s HAP+push:${ELAPSED_HAP_PUSH}s 总:${ELAPSED_TOTAL}s")
echo "$TARGET_ID 设备 $BUILD_MODE 模式 打包成功"
((SUCCESS_COUNT++))
......@@ -413,6 +440,7 @@ cd "$SCRIPT_DIR"
done
done
set -e
SCRIPT_END_TIME=$(date +%s)
# ====================== [7. Packing Result Statistics] ======================
echo ""
......@@ -427,5 +455,28 @@ if [ "$TOTAL_COUNT" -gt 0 ]; then
else
echo " 通过率 Rate: N/A"
fi
echo " 脚本总耗时: $((SCRIPT_END_TIME - START_TIME))s"
echo "=============================================="
if [ ${#ERR_MSGS[@]} -gt 0 ]; then
echo ""
echo "----------------------------------------------"
echo -e "\033[33m▶ 错误信息汇总\033[0m"
echo "----------------------------------------------"
for _line in "${ERR_MSGS[@]}"; do
echo " $_line"
done
echo "----------------------------------------------"
fi
if [ ${#PUSH_TIMES[@]} -gt 0 ]; then
echo ""
echo "----------------------------------------------"
echo -e "\033[32m▶ Push Time 汇总\033[0m"
echo "----------------------------------------------"
for _line in "${PUSH_TIMES[@]}"; do
echo " $_line"
done
echo "----------------------------------------------"
fi
echo ""
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment