Commit 69b794b6 authored by dsq's avatar dsq

时间汇总

parent 58a25ff3
...@@ -177,6 +177,8 @@ echo "------------------------------------------------------------" ...@@ -177,6 +177,8 @@ echo "------------------------------------------------------------"
TOTAL_COUNT=0 TOTAL_COUNT=0
SUCCESS_COUNT=0 SUCCESS_COUNT=0
ERR_MSGS=()
PUSH_TIMES=()
set +e set +e
for TARGET_ID in "${DEVICE_IDS[@]}"; do for TARGET_ID in "${DEVICE_IDS[@]}"; do
for BUILD_MODE in "${BUILD_MODES[@]}"; do for BUILD_MODE in "${BUILD_MODES[@]}"; do
...@@ -207,7 +209,9 @@ while true; do ...@@ -207,7 +209,9 @@ while true; do
fi fi
DEL_RETRY=$((DEL_RETRY + 1)) DEL_RETRY=$((DEL_RETRY + 1))
if [ $DEL_RETRY -ge 5 ]; then 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 continue 2
fi fi
sleep 1 sleep 1
...@@ -242,11 +246,15 @@ elif [ "$PLATFORM" = "iosSimulatorArm64" ]; then ...@@ -242,11 +246,15 @@ elif [ "$PLATFORM" = "iosSimulatorArm64" ]; then
./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64 2>&1 | tee "$GRADLE_OUT" ./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64 2>&1 | tee "$GRADLE_OUT"
GRADLE_RET=${PIPESTATUS[0]} GRADLE_RET=${PIPESTATUS[0]}
else else
echo "错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:不支持的平台 $PLATFORM)" _e="错误的 $TARGET_ID 设备 $BUILD_MODE 模式(原因:不支持的平台 $PLATFORM)"
echo "$_e"
ERR_MSGS+=("$_e")
continue continue
fi fi
if [ $GRADLE_RET -ne 0 ]; then 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 " >>> 命令错误输出(含具体文件/配置报错):" echo " >>> 命令错误输出(含具体文件/配置报错):"
[ -f "$GRADLE_OUT" ] && cat "$GRADLE_OUT" | tail -80 [ -f "$GRADLE_OUT" ] && cat "$GRADLE_OUT" | tail -80
rm -f "$GRADLE_OUT" rm -f "$GRADLE_OUT"
...@@ -266,7 +274,9 @@ else ...@@ -266,7 +274,9 @@ else
fi fi
if [ ! -d "$HARMONY_APP_DIR" ]; then 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 continue
fi fi
cd "$HARMONY_APP_DIR" cd "$HARMONY_APP_DIR"
...@@ -274,7 +284,9 @@ HVIGOR_OUT="/tmp/runOhos_hvigor_$$.out" ...@@ -274,7 +284,9 @@ HVIGOR_OUT="/tmp/runOhos_hvigor_$$.out"
ohpm install --all 2>&1 | tee "$HVIGOR_OUT" ohpm install --all 2>&1 | tee "$HVIGOR_OUT"
OHPM_RET=${PIPESTATUS[0]} OHPM_RET=${PIPESTATUS[0]}
if [ $OHPM_RET -ne 0 ]; then 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 " >>> 命令错误输出:" echo " >>> 命令错误输出:"
[ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80 [ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80
rm -f "$HVIGOR_OUT" rm -f "$HVIGOR_OUT"
...@@ -286,7 +298,9 @@ 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" 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]} HVIGOR_SYNC_RET=${PIPESTATUS[0]}
if [ $HVIGOR_SYNC_RET -ne 0 ]; then 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 " >>> 命令错误输出:" echo " >>> 命令错误输出:"
[ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80 [ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80
rm -f "$HVIGOR_OUT" rm -f "$HVIGOR_OUT"
...@@ -302,7 +316,9 @@ else ...@@ -302,7 +316,9 @@ else
fi fi
HVIGOR_ASM_RET=${PIPESTATUS[0]} HVIGOR_ASM_RET=${PIPESTATUS[0]}
if [ $HVIGOR_ASM_RET -ne 0 ]; then 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 " >>> 命令错误输出:" echo " >>> 命令错误输出:"
[ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80 [ -f "$HVIGOR_OUT" ] && cat "$HVIGOR_OUT" | tail -80
rm -f "$HVIGOR_OUT" rm -f "$HVIGOR_OUT"
...@@ -318,12 +334,16 @@ SIGNED_HAP="entry-default-signed.hap" ...@@ -318,12 +334,16 @@ SIGNED_HAP="entry-default-signed.hap"
HAP_FILE="$HAP_DIR/$SIGNED_HAP" HAP_FILE="$HAP_DIR/$SIGNED_HAP"
# Check if signed HAP package exists # Check if signed HAP package exists
if [ ! -f "$HAP_FILE" ]; then 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" cd "$SCRIPT_DIR"
continue continue
fi fi
if ! echo "$AVAILABLE_TARGETS" | grep -q "$TARGET_ID"; then 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" cd "$SCRIPT_DIR"
continue continue
fi fi
...@@ -347,7 +367,9 @@ if echo "$INSTALL_OUTPUT" | grep -qE "failed|Failed|error|Error"; then ...@@ -347,7 +367,9 @@ if echo "$INSTALL_OUTPUT" | grep -qE "failed|Failed|error|Error"; then
sleep 5 sleep 5
fi fi
if echo "$INSTALL_OUTPUT" | grep -qE "failed|Failed|error|Error"; then 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" echo " >>> $INSTALL_OUTPUT"
cd "$SCRIPT_DIR" cd "$SCRIPT_DIR"
continue continue
...@@ -368,7 +390,9 @@ END_TIME=$(date +%s) ...@@ -368,7 +390,9 @@ END_TIME=$(date +%s)
AA_START_RESULT=$? AA_START_RESULT=$?
# Check if screen lock error # Check if screen lock error
if echo "$AA_START_OUTPUT" | grep -q "10106102\|screen is locked"; then 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" cd "$SCRIPT_DIR"
continue continue
fi fi
...@@ -391,7 +415,9 @@ while [ $COUNT -lt $MAX_WAIT ]; do ...@@ -391,7 +415,9 @@ while [ $COUNT -lt $MAX_WAIT ]; do
done done
if [ -z "$APP_PID" ]; then 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" echo " >>> aa start 输出: $AA_START_OUTPUT"
cd "$SCRIPT_DIR" cd "$SCRIPT_DIR"
continue continue
...@@ -404,6 +430,7 @@ ELAPSED_TOTAL=$((END_TIME - START_TIME)) ...@@ -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 " - 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 " - 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)" 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 模式 打包成功" echo "$TARGET_ID 设备 $BUILD_MODE 模式 打包成功"
((SUCCESS_COUNT++)) ((SUCCESS_COUNT++))
...@@ -413,6 +440,7 @@ cd "$SCRIPT_DIR" ...@@ -413,6 +440,7 @@ cd "$SCRIPT_DIR"
done done
done done
set -e set -e
SCRIPT_END_TIME=$(date +%s)
# ====================== [7. Packing Result Statistics] ====================== # ====================== [7. Packing Result Statistics] ======================
echo "" echo ""
...@@ -427,5 +455,28 @@ if [ "$TOTAL_COUNT" -gt 0 ]; then ...@@ -427,5 +455,28 @@ if [ "$TOTAL_COUNT" -gt 0 ]; then
else else
echo " 通过率 Rate: N/A" echo " 通过率 Rate: N/A"
fi fi
echo " 脚本总耗时: $((SCRIPT_END_TIME - START_TIME))s"
echo "==============================================" 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 "" 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