🚀 Giới thiệu về Github Actions
Nếu bạn từng build, test, deploy thủ công sau mỗi lần commit, hẳn bạn biết cảm giác “chờ đợi và quên chạy lại script”.
Với GitHub Actions, mọi việc đó được tự động hóa hoàn toàn:
“Push code → chạy test → build → deploy” chỉ trong vài giây, không cần động tay.

🧩 GitHub Actions là gì?
GitHub Actions là hệ thống workflow automation tích hợp sẵn trong GitHub, cho phép bạn:
- Tự động chạy script mỗi khi có sự kiện (event) như
push,pull_request, hoặcrelease. - Tích hợp build/test/deploy dễ dàng.
- Kết hợp hàng ngàn Action sẵn có từ cộng đồng.
🔧 Bạn có thể tưởng tượng GitHub Actions như một “Jenkins” nhưng tích hợp sẵn trong GitHub, không cần setup server riêng.
⚙️ Cấu trúc một workflow cơ bản
Workflow được định nghĩa bằng file .yml trong thư mục .github/workflows/.
Ví dụ: ci.yml
name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
🧠 Giải thích:
on: định nghĩa trigger event (khi nào workflow chạy).jobs: danh sách các công việc.runs-on: chọn môi trường máy ảo (Linux, Windows, macOS).steps: các bước sẽ chạy tuần tự.
🧱 Thêm bước build & deploy
Giả sử bạn có app React, có thể mở rộng workflow:
- name: Build project
run: npm run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build
🎯 Khi bạn push lên branch main, GitHub Actions sẽ:
- Cài Node.js
- Cài dependency
- Build dự án
- Deploy tự động lên GitHub Pages

🔐 Secrets & Environment Variables
Để bảo mật token hoặc key deploy, dùng phần Settings → Secrets → Actions:
env:
API_KEY: ${{ secrets.API_KEY }}
Không bao giờ commit key trực tiếp vào repo – dùng secrets là cách an toàn nhất.
⚡ Mẹo tối ưu workflow
| Mẹo | Giải thích |
| Sử dụng cache | Dùng actions/cache để lưu dependency giữa các lần build |
| Chạy song song | Dùng jobs.<id>.strategy.matrix để test trên nhiều môi trường |
| Chỉ chạy khi cần | Dùng if: để giới hạn điều kiện |
| Tách file workflow | Mỗi pipeline (build, test, deploy) riêng giúp dễ quản lý |
| Sử dụng reusable workflow | Dùng workflow_call để chia sẻ cấu hình giữa nhiều repo |
🧠 Khi nào nên dùng GitHub Actions?
| Mục tiêu | Nên dùng Actions? |
| CI/CD cho app web, mobile | ✅ Rất phù hợp |
| Automation kiểm tra code | ✅ Dễ dùng |
| Build Docker image | ✅ Có nhiều action hỗ trợ |
| Deploy production phức tạp (k8s, AWS ECS…) | ⚠️ Có thể, nhưng cần kiến thức DevOps |
| Workflow nặng, cần self-hosted runner | ✅ Có thể tùy chỉnh |
🧩 Kết luận
GitHub Actions mang lại sức mạnh DevOps ngay trong tay developer –
bạn không cần Jenkins, không cần server riêng, chỉ cần 1 file YAML là có thể tự động hóa toàn bộ quy trình phát triển.
Hãy thử bắt đầu bằng việc thêm file .github/workflows/ci.yml vào repo của bạn, và xem mỗi lần push code trở nên nhẹ nhàng thế nào.
💬 Bạn đã từng dùng GitHub Actions để deploy project thực tế chưa? Hãy chia sẻ kinh nghiệm của bạn trong phần bình luận nhé!
