title: "Git deploy verification" description: "Vercel auto-deploy is off, push goes through GitHub Actions, and Node 18 EOL causes silent failures." dateCreated: "2026-07-29" dateUpdated: "2026-07-29" category: "debug" tags: ["linux", "git", "vercel", "github actions", "terminal"] kind: "article" topic: "git" experience: "terminal" interactive: true difficulty: 2 estimatedMinutes: 5
Có một ngày bạn commit code, tự tin gõ lệnh push. Không có lỗi nào ở local. Nhưng khi bạn lên production refresh... mọi thứ vẫn như cũ.
commit e12a4b3c (HEAD -> main, origin/main) Author: Kiet Tran Date: Wed Jul 29 08:30:00 2026 +0700
fix: syntax error causing blank page on production
Quan sát
Khoan đã. Commit đã nằm trên origin/main. Tức là code đã lên GitHub thành công.
Vậy đây không phải lỗi "chưa push code".
Thường khi dùng Vercel, git push vào nhánh chính (main) sẽ kích hoạt một hook để Vercel tự động build. Nhưng nếu Vercel auto-deploy đang tắt thì sao?
{ "github": { "enabled": false, "silent": true } }
Vercel github hook đã bị tắt (enabled: false).
Thay vào đó, deployment pipeline của hệ thống này đi qua GitHub Actions (workflow .github/workflows/production.yml).
Vậy chúng ta cần kiểm tra GitHub Actions thay vì dashboard của Vercel.
X Deploy to Production production.yml main #123 2m ago
Quan sát
Workflow đã chạy, nhưng FAIL (X). Đó là lý do production không có code mới. Nhưng tại sao nó lại fail? Lỗi cú pháp chăng? Không, local chạy rất tốt.
Hãy nhìn vào log chi tiết của GitHub Actions, đặc biệt là step cài đặt và chạy Vercel CLI.
High Severity
FACT (Tháng 07/2026):
Lúc sự cố xảy ra, CI pipeline của repo bị pin ở Node 18 (chuẩn bị EOL).
Vercel CLI bản canary mới nhất yêu cầu tối thiểu Node 20.
Do đó, khi workflow chạy npx vercel build, nó văng lỗi phiên bản Node và âm thầm thất bại.
(Hiện tại repo đã được nâng cấp lên Node 24 để tránh lỗi này lặp lại).
The Verdict
Push thành công không có nghĩa là Deploy thành công. Khi gặp trường hợp "Code local chạy, prod không đổi":
- Đừng vội vàng sửa application code.
- Kiểm tra commit lịch sử: đã push lên remote chưa?
- Kiểm tra pipeline: hook có chạy không, CI có xanh không?
Lỗi infra (như Node EOL) thường giấu mình đằng sau một cái push thành công rực rỡ.