Nói thật lòng, lúc mới bắt đầu làm dev, tôi cứ nghĩ CI/CD là thứ gì đó xa vời, chỉ dành cho các big tech hay đội ngũ DevOps chuyên nghiệp. Còn mình thì cứ lo code chạy trên máy là mừng, cam go lắm. Nhưng rồi sau một lần "thảm họa" deploy manual, mọi thứ thay đổi hoàn toàn.
Hồi đó, tôi tự tay copy code từ máy về server, chạy lệnh npm install rồi mới npm start. Tưởng chừng đơn giản, nhưng có lần quên cập nhật một cái package version, chạy mượt trên local mà lên production thì sập ngay lập tức. Cảm giác lúc đó như muốn rút tóc, ngồi debug đến 2h sáng chỉ vì một biến môi trường bị sai config. Từ đó, tôi ngộ ra: automate everything không phải là xu hướng, mà là sự sống còn.
Rồi mình bắt đầu tìm hiểu GitHub Actions. Thật ra, đọc tài liệu chính chủ (docs) của họ ban đầu hơi đau đầu vì quá nhiều khái niệm. Nhưng một khi đã setup được cái .github/workflows/deploy.yml đầu tiên, cảm giác như có phép màu vậy. Giờ thì mỗi khi push code lên git push origin main, GitHub tự động chạy test, tự build, rồi tự deploy luôn. Không cần mình ngồi canh, không cần lo quên bước nào.
Điểm mình thích nhất ở GitHub Actions là tính linh hoạt. Thay vì dùng Jenkins hay GitLab CI truyền thống, Actions tích hợp ngay trong GitHub, interface quen thuộc, dễ nhìn. Mình cũng từng so sánh với CircleCI, nhưng cuối cùng vẫn chọn Actions vì free tier khá hào phóng cho các dự án cá nhân và cộng đồng open source.
Tuy nhiên, đừng nghĩ là cứ có CI/CD là万事大吉. Mình vẫn từng mắc lỗi: config workflow không đúng, dẫn đến việc pipeline chạy mãi không xong hoặc skip bước test quan trọng. Có lần vì thiếu bước npm run test, code lỗi được merge vào master, gây sập API trong 10 phút. Bài học đó dạy mình: tự động hóa là tốt, nhưng phải có giám sát và test coverage đủ cao.
Nói chung, đối với một dev tự do hay làm dự án nhỏ, GitHub Actions chính là "cây đũa thần" giúp mình yên tâm code hơn, bớt lo lắng về việc deploy. Nó không chỉ tiết kiệm thời gian mà còn giảm stress đáng kể. Ai mới bắt đầu thì nên thử setup workflow đơn giản nhất: chạy test mỗi khi PR được tạo. Đảm bảo là bạn sẽ "sướng" hơn rất nhiều.
Đừng ngại học tool mới, vì công nghệ thay đổi nhanh, nhưng tư duy tự động hóa thì luôn là nền tảng vững chắc cho sự phát triển bền vững của bất kỳ developer nào.