#!/bin/bash # 部署计时器 - 记录每个阶段的耗时 TIMING_FILE="/tmp/deploy_timing.txt" > "$TIMING_FILE" start_timer() { echo "START_$1=$(date +%s)" >> "$TIMING_FILE" } end_timer() { echo "END_$1=$(date +%s)" >> "$TIMING_FILE" } print_summary() { echo "## ⏱️ 部署耗时统计" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| 阶段 | 耗时 |" >> $GITHUB_STEP_SUMMARY echo "|------|------|" >> $GITHUB_STEP_SUMMARY total_start=$(grep "START_WORKFLOW" "$TIMING_FILE" | cut -d'=' -f2) total_end=$(date +%s) total_duration=$((total_end - total_start)) # 解析每个阶段 for stage in PRE_CHECK SUBSET_FONTS BUILD DEPLOY_EDGEONE DEPLOY_UPYUN FINALIZE; do start=$(grep "START_${stage}=" "$TIMING_FILE" | cut -d'=' -f2) end=$(grep "END_${stage}=" "$TIMING_FILE" | cut -d'=' -f2) if [ -n "$start" ] && [ -n "$end" ]; then duration=$((end - start)) minutes=$((duration / 60)) seconds=$((duration % 60)) echo "| $stage | ${minutes}m ${seconds}s |" >> $GITHUB_STEP_SUMMARY fi done total_minutes=$((total_duration / 60)) total_seconds=$((total_duration % 60)) echo "| **总计** | **${total_minutes}m ${total_seconds}s** |" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY }