Tổng quan về CI/CD

CI (Continuous Integration)

Khái niệm: Là thực hiện tự động hoá việc tích hợp cấc thay đổi từ một hoặc nhiều vào một kho chứa (repository) chung duy nhất.

Mục tiêu: Tự động hoá một quy trình khi developer commit và push code lên repository. Quy trình này thường bao gồm:
- Checkout code: Lấy mã nguồn mới nhất
- Build: Build thành file sản phẩm có thể chạy được (apk, exe,...)
- Test: Chạy kiểm thử để đảm bảo các thay đổi không gây ra lỗi.

Lợi ích: Phát hiện sớm các xung đột và lỗi tích hợp, đảm bảo code ở nhánh chính luôn ở trạng thái ổn định và có thể build được.

CD (Continuous Delivery/Deployment)

Khái niệm: Mở rộng từ CI, CD là tự động hoá việc phát hành phầm mềm đã được build và kiểm tử thành công. CD có 2 khái niệm con:
- Continuous Delivery: Sau khi CI thành công. Sản phẩm sẽ được tự động đóng gói và chuẩn bị sẵn sàng cho triển khai ra môi trường thực tế. Tuy nhiên, bước triển khai ra môi trường thực tếcần có sự phê duyệt thủ công.
- Continuous Deployment: Hệ thống tự động triển khai phiên bản build thành công ra môi trường production màkhông cần phê duyệt thủ công.

Mục tiêu:Giảm thiểu rủi ro và công sứctrong quá trình phát triển sản phẩm. Đảm bảo mọi bản build thành công đều có thể đượcphát hành một cách nhanh chóng và đáng tin cậy.

Lợi ích:Tăng tốcphát triển tính năng và bản vá lỗi tới người dùng,giảm thiểu lỗido con người trong quá trình phát triển thủ công.

Tại sao cần CI/CD

Phát triển game với Unity có những đặc thù kiến CI/CD trở nên cực kỳ hữu ích:
- Tối ưu thời gian: Với những dự án lớn, nhiều assets thường sẽ mất nhiều thời gian để build. Việc tự động hoá giúp giải phóng máy tính của developer, build bằng các máy chuyên dụng.
- Build đa nền tảng: Unity hỗ trợ build đa nền tảng. CI/CD cho phép tự động hoá việc build cho tất cả các nền tảng một cách nhất quán.
- Quản lý môi trường build: Mỗi nền tảng yêu cầu các SDK và cấu hình môi trường riêng. CI/CD giúp đảm bảo môi trường build luôn được thiết lập đúng và nhất quán.
- Đảm bảo chất lượng: Tự động chạy Unity Test Framework trong pipeline CI giúp phát hiện lỗi sớm hơn.
- Cải thiện sự hợp tác: Đảm bảo rằng mọi thành viên trong team luôn làm việc trên một code base có thể build được và đã qua kiểm thử cơ bản.
- Phát hành nhanh chóng và nhất quán: Tự động hoá việc tạp các bản build cho QA, beta testers hoặc phát hành chính thức lên các cửa hàng ứng dụng.

Các thành phần của hệ thống CI/CD cho Unity.

- Version Control System: Hệ thống quản lý phiên bản (GitHub, Gitlab, Bitbucket...). Đây là nơi lưu trữ code cũng như điểm khởi đầu để kích hoạt pipeline CI/CD/
- CI/CD platform: Dịch vụ hoặc phần mềm điều phối toàn bộ quy trình (Jenkins, Gitlab CI/CD, Github Action, Unity Cloud Build, Azure DevOps...)
- Build Agent/Runner: Máy tính (vật lý hoặc ảo) được cài đặt Unity Editor, các SDK cần thiết và phần mềm của CI/CD platform để thực thi các công việc build và test.
- Testing Framework: Unity Test Framework để viết test và chạy các bài kiểm thử tự động.
- Artifact Storage: Nơi lưu trữ các sản phẩm được build.


Revision #1
Created 2025-08-18 03:19:15 UTC by ThanhDV
Updated 2025-08-18 03:20:31 UTC by ThanhDV