"Ci"
- App 簽章、商店審核與分批發布流程
說明 mobile / desktop app CI/CD 如何處理 signing secret、store review、phased rollout、hotfix 與多版本共存
- Data pipeline backfill、checkpoint 與 rerun 流程
說明資料處理任務 CI/CD 如何驗證 schema、部署 job、控制 backfill、建立 checkpoint 與處理 rerun
- Desktop client 簽章、公證與自動更新流程
說明 Flutter Desktop、Electron、Tauri 等桌面客戶端 CI/CD 如何處理 installer、code signing、notarization、update feed 與 rollback channel
- IaC plan、apply、drift 與 recovery 流程
說明 Terraform / Helm / Pulumi 等平台變更 CI/CD 如何用 plan review、state lock、drift detection 與 recovery gate 控制風險
- Image build、scan、registry 與 promotion 流程
說明 Docker / container image CI/CD 如何建立可追溯 tag、掃描 gate、registry promotion 與 runtime handoff
- Serverless function 版本、事件來源與回復流程
說明 Lambda / Cloud Functions / Edge Functions CI/CD 如何管理 function artifact、alias、IAM、event source、retry 與 rollback
- 前端 artifact 與 preview deployment 流程
說明前端 CI/CD 如何用同一份靜態 artifact 串起 build、browser test、preview environment、CDN 發布與 rollback
- 後端 migration、rollout 與 rollback 流程
說明後端 CI/CD 如何把程式、資料 migration、流量切換與 rollback 拆成可驗證的發布流程
- Binary release 與 installer 模式
從零學怎麼搭 tag-driven binary release:cargo-dist / goreleaser 的觸發鏈路、installer script 契約、跨平台編譯設定,以 zhtw-mcp 為陪跑案例觀察社群實際如何把這條通道搭起來
- CI Pipeline
說明持續整合如何在合併前自動驗證變更品質與相容性
- CI/CD 失敗到修復發布流程
說明 CI/CD 測試、建置或發布失敗後如何判讀、重現、修復、重新觸發與恢復發布
- 本 blog 專案的 GitHub Actions workflow
以本 blog 專案為例,整理 .github/workflows 底下所有 workflow 的觸發條件、責任、失敗處理與維護注意事項
- GitHub Actions:Environment Protection 與 OIDC Cloud Auth
用 environment protection rules 做 deploy approval gate、用 OIDC 取代 long-lived cloud credential。
- CI gate 與 workflow 邊界
說明 required checks、job needs、environment protection 與 artifact handoff 的責任邊界,避免測試與發布流程互相錯位
- Required Checks
說明 pull request 的必要檢查如何作為合併 gate
- CI 中的服務 fixture 管理
在 CI 中啟動和停止真實服務的 test harness 設計 — Process.start / Docker / testcontainers 三種方案的適用場景
- Flaky test 根因分類
計時依賴 / 環境差異 / 資源競爭 / 非確定性輸出 — 四類 flaky test 根因的辨識和處理策略
- Artifact
說明 CI/CD 中可被驗證、保存與發布的交付產物
- Artifact Handoff
說明測試與部署如何共用同一份可追溯產物
- Preview Environment
說明 pull request 變更如何在隔離部署環境中被驗證
- Migration
說明資料或結構變更如何在服務不中斷前提下受控推進
- Branch Protection
說明主線分支如何以規則保護合併與發布前置條件
- Jenkins → GitHub Actions:Pipeline 5 段 lifecycle 的對位 + 翻譯
Jenkins → GHA 是 Type A 高 schema 差 migration、主軸是 Groovy DSL → YAML workflow 翻譯;本文按 pipeline 5 段 lifecycle(source → build → test → scan → deploy)逐段對位、5 個 production 踩雷(shared library equivalence / ephemeral workspace / plugin gap / self-hosted runner / matrix build 表達差)
- Flaky Test
說明非決定性測試如何降低 CI gate 信任度與治理方式
- Backfill
說明資料處理與 migration 中如何受控補算歷史資料
- Checkpoint
說明長時間任務如何記錄進度以支援接續、重跑與事故修復
- Rerun
說明 CI/CD 與 data pipeline 中重跑任務前需要判斷的輸出語意與副作用
- Artifact 與可重播性
說明 CI/CD 中 artifact 如何支撐測試、發布、回溯與 rollback,並建立 build once、verify once、promote same artifact 的流程
- Flaky test 治理
說明 CI/CD 如何把 flaky test 從重跑雜訊轉成可分類、可隔離、可修復的 gate 信任度問題
- Log 時間真空是 silent hang 訊號、happy log 是 anti-signal
非互動 process(CI / cron / container init)的最後一行 log 是成功訊息、到被 cancel 之間有大段時間無輸出時回來。判讀靠訊息時序的真空、不是最後一行的成功訊息。
- CI step silent hang:時間真空才是訊號、happy log 反而是 anti-signal
CI step 跑很久才 timeout、最後一行卻是「下載 100% / build succeeded」這種 happy log 時回來。判讀:別急著加 timeout,先算最後一行到 cancel 的時間真空、確認是 silent hang,再用症狀詞查 upstream issue。同方向修法連 fail 2 次就是停手回資料層的訊號。
- 用 Claude Code GitHub Actions 自動除錯 CI 建置失敗
GitHub Actions 整合 Claude Code 做 CI 修復與 Code Review。含觸發設定、成本控制、OAuth vs API key 計費差異。