43 lines
1.3 KiB
Bash
43 lines
1.3 KiB
Bash
#!/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
|
|
}
|