Skip to content

Rollback một worker ​

Khi nào: một bản deploy vừa lên làm một mặt tiền hỏng (trang trắng, 5xx, API trả sai) và sửa tới không kịp trong vài phút. Rollback quay worker về version Cloudflare ngay trước, không đụng D1.

Làm thế nào (chỉ qua GitHub Actions) ​

bash
gh workflow run rollback.yml --ref main -f worker=nemo12-dolphin -f reason="dolphin trang trang sau b4fe614"
# quay về một version cụ thể (xem `wrangler versions list` trong log run trước):
gh workflow run rollback.yml --ref main -f worker=nemo12-api -f version_id=<uuid> -f reason="..."

Tên worker là trường name trong wrangler.jsonc (15 worker: api · foundry · tool-plane · web · learn · marlins · dolphin (không phải mentors) · admin · coral · docs · pearl · playbooks · compass · b21 · ielts). Workflow xếp hàng trong group production cùng ci/deploy/seed nên không chạy chồng lên một lượt deploy đang dở.

Workflow tự kiểm: trạng thái trước, 10 version gần nhất, rollback, trạng thái sau, rồi curl bề mặt công khai (2xx/30x/401/403 là "sống"; foundry không có URL công khai nên bỏ qua bước curl).

Ba việc rollback KHÔNG làm ​

  1. main vẫn là bản lỗi. Push kế tiếp deploy lại nó. Revert commit (git revert <sha>) hoặc sửa tới ngay, đừng để qua đêm.
  2. Migration D1 đã áp thì không quay ngược. Bản cũ phải đọc được schema mới — luật AS-04.1.3 (thêm cột có DEFAULT, không đổi tên/xoá cột) tồn tại đúng vì lý do này. Nếu bản cũ gãy vì schema mới, đường ra là sửa tới, không phải rollback.
  3. Không rollback được assets đã đổi hash? Có: version Cloudflare gồm cả assets của lần deploy đó.

Sau rollback ​

  • Ghi sự cố vào intake (SRC mới, ngày tuyệt đối, triệu chứng, version id, cách sửa tới).
  • Nếu nguyên nhân là một cổng chất lượng bỏ sót, thêm cổng — xem Audit #013 §3.5.

Trạng thái diễn tập ​

Workflow này chưa từng chạy thật (0 run tính tới 2026-09-04; Audit #013 I-3 sửa tên worker và thêm 6 worker thiếu). Việc tay còn chờ: diễn tập một lần trên nemo12-compass (ít rủi ro) và ghi kết quả vào đây với ngày.