GitHub Actions 额度用光后,Flutter Web 怎么继续发版
来源:dev.to — 2026-10-27
📋 概述
10 月 18 日,作者的个人项目 life_os_app 正在发多特性审计和补剂追踪改版,CI 突然不再排队——个人账号托管 runner 的分钟数用光了。他数了数每次推送都在干什么:拉起 ubuntu-latest、装 Flutter SDK 并暖 Pub 缓存约 90 秒、装 Python 3 跑 68 个同步单测约 15 秒、flutter analyze 加 466 个 widget 与无障碍测试约 110 秒、编译 web 约 140 秒、再用 Workload Identity Federation 部署到 Firebase Hosting 约 35 秒。每个 PR 推送 6.5 分钟,合进 main 再加 4 分钟;十月七十多个 PR 烧掉数千分钟,而同样的活在他本地的 Apple Silicon 上不到 35 秒就跑完了。
🔑 核心要点
- 单个 PR 推送 6.5 分钟 CI,大头是重复装 SDK 和编译 web
- 同一套检查在本地 Apple Silicon 上不到 35 秒完成
- 替代方案是本地三层验证闸门:绝不部署未经校验的状态
- 应用状态横跨 Python 同步工具与 Flutter 两个运行时,本地闸门必须同时覆盖
- 无障碍对比度和 44pt 点击区域放进 flutter test 里测,别等生产环境暴露
💡 金句
“When your CI budget hits zero on a personal repo, you have two choices: pay for extra runner minutes to compile code your laptop already compiled, or build a deterministic local verification and deployment pipeline that is faster and safer than the YAML workflow it replaces.”
译:个人仓库的 CI 额度归零时只有两条路:花钱买分钟数去编译你笔记本早就编译过的代码,或者建一条比原来那套 YAML 更快、更安全的本地确定性验证与部署流水线。
← 返回 dev.to 首页