Tự động hóa CI/CD cho Next.js bằng GitHub Actions: Auto-lint, Auto-test và Auto-deploy

2026-07-24 8 phút đọcBởi Uwmee Software

Mỗi khi viết xong một tính năng mới, bạn vẫn phải tự gõ thủ công từng lệnh git pull, pnpm buildpm2 reload trên VPS? Hãy để GitHub Actions (Hệ thống CI/CD tự động của GitHub) thay thế bạn làm 100% công việc nhàm chán này một cách chính xác tuyệt đối mỗi khi bạn git push!

1. Quy trình CI/CD với GitHub Actions gồm những gì?

  • Phase 1: Continuous Integration (CI): Tự động kiểm tra cú pháp code (ESLint), chạy Unit Test và build thử nghiệm ngay trên Server GitHub. Nếu có lỗi, chặn không cho Merge code.
  • Phase 2: Continuous Deployment (CD): Khi code được đẩy vào nhánh main, GitHub Actions tự động kết nối SSH vào VPS Server và thực thi script deploy.

2. File Workflow .github/workflows/deploy.yml chuẩn mực

Tạo file cấu hình tự động trong dự án Next.js:

name: Deploy Next.js App to VPS

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1.0.0
        with:
          host: ${{ secrets.VPS_HOST }}
          username: ${{ secrets.VPS_USER }}
          key: ${{ secrets.VPS_SSH_KEY }}
          script: |
            cd /var/www/uwmee-landing-page
            git pull origin main
            pnpm install
            pnpm build
            pm2 reload uwmee-landing-page --update-env

3. Bảo mật thông tin Secret Keys trong GitHub

Vào Repository trên GitHub → Settings → Secrets and variables → Actions → Khai báo các biến VPS_HOST, VPS_USERVPS_SSH_KEY tuyệt đối an toàn không bị lộ mã nguồn.

Kết luận

Tự động hóa CI/CD giúp đội ngũ lập trình tiết kiệm hàng trăm giờ lao động và loại bỏ 100% sai sót do thao tác thủ công. Uwmee Software thiết lập sẵn luồng CI/CD GitHub Actions tự động cho mọi dự án mã nguồn bàn giao. Đọc thêm bài viết Dockerize Next.js Standalone build.

Cần vượt Closed Testing nhanh chóng?

Đội 12+ tester thật của Uwmee tương tác hằng ngày đủ 14 ngày — trọn gói chỉ 300.000đ, chạy lại miễn phí nếu không đạt.

Câu hỏi thường gặp