type
Post
status
Published
date
Feb 5, 2026
slug
webstack-4
summary
第四篇(终章):DevOps 降临!看到那行 🗑️ [Deleted] weibo.com.webp,简直比看爽文还舒服。这意味着导航站已经有了**“生命”**——它能自己新陈代谢,自己打扫卫生了。这篇博文将汇聚所有的折腾成果,展示那个集“抓取、清理、部署、刷新”于一体的终极流水线
tags
开发
建站
category
技术分享
icon
password
前情提要
  • [第一集] 痛陈手动维护图标的血泪史。
  • [第二集] 用 Python 给本地图标库来了次“降维打击”(WebP瘦身)。
  • [第三集] 初步尝试 GitHub Actions,实现了“填链接自动抓图”。
但作为一个极致的折腾党,我发现还有两个痛点:
  1. 垃圾残留:删了链接,图标却还赖在文件夹里不走。
  1. 缓存时差:代码提交了,Cloudflare 缓存还没刷新,还要手动去点一下 Purge。
不能忍。
今天,我们将完成最后一块拼图,把所有脚本整合成一条**“全自动流水线” (Pipeline)**,实现真正的“自动驾驶”。

🧩 拼图一:赋予脚本“自洁”能力

只有“进货”没有“出货”的系统是不健康的。我修改了 Python 脚本,增加了**“反向比对”**逻辑:
每次抓取完新图标后,脚本会拿着最新的配置文件去扫描本地文件夹——凡是没被引用的 WebP 文件,统统杀无赦。
看看这行日志,多解压:
Plaintext
这意味着我以后删网站,再也不用担心留下电子垃圾了。

⛓️ 拼图二:流水线化 (Pipeline)

之前我有两个 Action,一个管图标,一个管缓存刷新。它们各跑各的,经常出现“缓存刷新了,但新图标还没部署上去”的尴尬时间差。
我决定把它们合并,利用 GitHub Actions 编排了一个严密的线性流程
1. 生产阶段 🏭
运行 Python 脚本,下载新图标,删除旧图标。
2. 提交阶段 💾
如果文件有变动,机器人自动 Commit 并 Push 回仓库。
(这一步会自动触发 Cloudflare Pages 的构建)
3. 等待阶段
强行 sleep 60s
这不是卡了,这是为了给 Cloudflare Pages 留出构建和分发的时间。
4. 刷新阶段 🧹
调用 Cloudflare API,清理 CDN 缓存。

📝 最终版 Workflow 代码

这是我的 .github/workflows/deploy-pipeline.yml,它就是整个系统的指挥官:
YAML

🎉 完结撒花:一种生活方式

现在,我维护导航站的体验变成了这样:
  1. 打开 webstack.yml
  1. 想加网站?写个 URL。
  1. 想删网站?删掉那一行。
  1. Git Push
  1. 关机睡觉。
剩下的事情,GitHub 的服务器会帮我跑脚本,Google 会帮我提供图标,Python 会帮我转码压缩,Git 会帮我管理版本,Cloudflare 会帮我构建全球 CDN。
你看,折腾到最后,其实就是为了“不折腾”。
我们要做的,只是享受那个绿色的 Build Success,以及那个秒开的、属于自己的起始页。
(全系列完)

 
手搓导航站日记 (3):终极进化!用 GitHub Actions 打造“全自动图标工厂” 🤖通用大模型落地垂直行业的“深水区”:6 大陷阱与破局实战指南
Loading...