fix(排序): 同日文章 date 补全时分秒 + EdgeOne 部署重试增强
现象:小乖同一天发的第二篇排到了第一篇后面。
根因:front matter 的 date 只写到年月日(写入侧只收得到日期),
同一天多篇的时间戳完全并列 → 排序退化成比标题,前台/后台都错。
改动:
- 数据(6 篇):用目录名/slug 里的时间戳把 date 补全为
'YYYY-MM-DDTHH:MM:SS+08:00',slug 即写作时刻。每篇仅 1 行 diff。
2026-10-05 两篇(必须)、2026-06-02 / 06-03 四篇(同一 bug 的历史遗留)。
- 写入侧根治
- editor-api/src/posts.mjs:新建时「只到天」补北京时间此刻;
保存时「同日保真」——没换日子则原有时分秒一字符不动。
- write-server/src/lib/posts.ts:parseDate 按 Asia/Shanghai 归日,
列表同天排序不再受 UTC 时区漂移影响。
- 回归测试:新增 editor-api/test/date-time.mjs(8 项,自带一次性临时仓库)。
- .cnb.yml:EdgeOne stage 重试 3 次/20s → 5 次/30s。
构建节点到 api.edgeone.ai 偶发 15s 超时会被 CLI 误报
「Invalid EDGEONE_PAGES_API_TOKEN」,纯网络抖动,令牌没坏。
- .gitignore:忽略 *.zip 与 .edgeone/(误留的 blog.zip 达 361MB)。
This commit is contained in:
1 parent
5d16c8c8d6
commit
5e9d328841
12 files changed
+234
-15
No files matched your search
@@ -178,21 +178,25 @@
|
||||
trap record EXIT
|
||||
|
||||
test -n "$EDGEONE_API_TOKEN" || { echo "❌ 缺 EDGEONE_API_TOKEN"; exit 1; }
|
||||
# ★ 重试 3 次:EdgeOne CLI 第一步要访问 api.edgeone.ai 做 region 检查,
|
||||
# 构建节点到该域名的偶发超时(实测 15s AxiosError timeout)会让 CLI 直接
|
||||
# 报「Invalid EDGEONE_PAGES_API_TOKEN」—— 令牌其实没坏,纯网络抖动。
|
||||
# ★ 重试 5 次 / 退避 30s:EdgeOne CLI 第一步要访问 api.edgeone.ai 做 region
|
||||
# 检查,构建节点到该域名的偶发超时(实测 15s AxiosError timeout)会让 CLI
|
||||
# 直接报「Invalid EDGEONE_PAGES_API_TOKEN」—— 令牌其实没坏,纯网络抖动。
|
||||
# 2026-10-04 复现:同一令牌在本机部署秒过,CNB 节点那一次 15s 超时误报。
|
||||
# 2026-10-05 build 4 又踩同一次抖动(3 次重试全挂 → 白报一封失败邮件)。
|
||||
# 最坏耗时 5×(15s 超时 + 30s 退避) ≈ 4 分钟,远小于本 stage 的 20m。
|
||||
# 失败重试比让整条流水线变红、白发一封失败邮件划算得多。
|
||||
ok_deploy=0
|
||||
for i in 1 2 3; do
|
||||
for i in 1 2 3 4 5; do
|
||||
if npx edgeone pages deploy ./public -n hugo-blog -t "$EDGEONE_API_TOKEN" --area overseas; then
|
||||
ok_deploy=1
|
||||
break
|
||||
fi
|
||||
echo "⚠️ EdgeOne 第 $i 次部署失败(多为构建节点网络抖动),20s 后重试…"
|
||||
sleep 20
|
||||
if [ "$i" -lt 5 ]; then
|
||||
echo "⚠️ EdgeOne 第 $i 次部署失败(多为构建节点网络抖动),30s 后重试…"
|
||||
sleep 30
|
||||
fi
|
||||
done
|
||||
test "$ok_deploy" = 1 || { echo "❌ EdgeOne 连续 3 次部署失败"; exit 1; }
|
||||
test "$ok_deploy" = 1 || { echo "❌ EdgeOne 连续 5 次部署失败"; exit 1; }
|
||||
echo "✅ EdgeOne 部署完成"
|
||||
|
||||
- name: 上报部署状态
|
||||
|
||||
Reference in new issue
Block a user