
Mục tiêu bài học
- Hiểu rõ CI/CD là gì và tại sao nó quan trọng trong quy trình DevOps
- Phân biệt giữa Continuous Integration, Delivery và Deployment
- Cài đặt và chuẩn bị GitHub để thực hành CI/CD
- Tạo repository đầu tiên có thể dùng cho pipeline
1. CI/CD là gì?
CI – Continuous Integration (Tích hợp liên tục)
Là quá trình tự động hóa việc:
- Kiểm tra code (lint, test) mỗi khi có thay đổi
- Build phần mềm để phát hiện lỗi sớm
👉 Mục tiêu: Code đẩy lên phải luôn ở trạng thái “ổn định”
CD – Continuous Delivery / Deployment
- Continuous Delivery: Tự động chuẩn bị bản release, người dùng bấm nút để deploy
- Continuous Deployment: Tự động deploy lên server mỗi khi pass test
👉 Mục tiêu: Phát hành phần mềm nhanh, ổn định, không cần thao tác tay
2. Lợi ích khi áp dụng CI/CD
Vấn đề cũ | Khi có CI/CD |
---|---|
Deploy thủ công dễ lỗi | Tự động hóa, ít lỗi |
Khó kiểm soát release | Có quy trình rõ ràng |
Sợ merge code nhiều | Merge xong test liền |
Phát hành chậm | Có thể release nhiều lần/ngày |
3. Các công cụ phổ biến trong CI/CD
Mục đích | Công cụ |
---|---|
CI/CD pipelines | GitHub Actions, GitLab CI, Jenkins |
Build/Test | npm, pytest, Maven… |
Container | Docker |
Deploy | SSH, Render, Railway, K8s |
4. Thực hành: Setup GitHub để chuẩn bị CI/CD
Bước 1: Tạo repository mới trên GitHub
- Truy cập: https://github.com
- Click New Repository
- Đặt tên:
cicd-demo
- Chọn: ✔️ Public, ✔️ Initialize with README
Bước 2: Clone repository về máy
git clone https://github.com/tenban/cicd-demo.git
cd cicd-demo
Bước 3: Tạo thư mục workflows cho CI/CD
GitHub Actions dùng thư mục .github/workflows/
để chứa pipeline.
mkdir -p .github/workflows
Bước 4: Tạo file pipeline đầu tiên
Tạo file .github/workflows/hello.yml
với nội dung đơn giản sau:
name: Hello CI
on:
push:
branches: [ "main" ]
jobs:
say-hello:
runs-on: ubuntu-latest
steps:
- name: Print greeting
run: echo "🎉 CI/CD is working!"
Bước 5: Đẩy code lên GitHub để trigger CI
git add .
git commit -m "Add first CI workflow"
git push origin main
➡️ Sau khi push, vào tab Actions trên GitHub repository để xem pipeline đang chạy.
✅ Kết quả
Bạn vừa:
- Hiểu được CI/CD là gì và vai trò quan trọng của nó
- Tạo một pipeline đơn giản trên GitHub Actions
- Bắt đầu hành trình tự động hóa quá trình phát triển phần mềm!
🔜 Bài tiếp theo: Thiết lập pipeline CI cho ứng dụng thật
Trong bài 2, ta sẽ:
- Viết pipeline CI đầy đủ cho một app NodeJS (hoặc Python)
- Tự động kiểm thử, build mỗi khi push code
Sign up