# CI Cho KMP

> CI của repo kiểm tra gì trên mỗi pull request, và phần nào của app KMP vẫn phải tự kiểm tra trên Mac.

- URL: https://dantech.academy/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-06-ci-for-kmp
- Khóa học: [Mobile Action Pro](https://dantech.academy/courses/kotlin-accelerator.md)
- Module: Testing, Security Và Release
- Thời lượng: 12 phút
- Độ khó: intermediate
- Truy cập: Dành cho học viên
- English: https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-06-ci-for-kmp.md

## Mục tiêu

- Đọc pr-check.yml và giải thích vì sao cần cả testDebugUnitTest lẫn testAndroidHostTest
- Giải thích cách workflow xử lý secret: giá trị giả trong local.properties, google-services.json qua repository secret
- Chỉ ra phần CI chưa kiểm tra (iOS, coverage, release) và đánh giá một job macOS trước khi thêm vào

## Nội dung bài học

1. Mục Tiêu Bài Học
2. Phần 1: Hai Workflow, Hai Việc Khác Nhau
3. Phần 2: Đọc pr-check.yml Từng Bước
4. Phần 3: Những Gì CI Chưa Kiểm Tra
5. Phần 4: Phác Thảo Job macOS (Chưa Kiểm Chứng)
6. Lộ Trình Đọc Code
7. Bài Tập
8. Bảng Xử Lý Lỗi
9. Tham Khảo
10. Ý Chính

## Học cùng AI agent

Toàn bộ bài học dành cho học viên của khóa. Học viên mở bài trên web và bấm nút **Markdown** để copy toàn bài, rồi dán vào Claude, ChatGPT, Cursor hoặc agent bạn đang dùng. Nhanh hơn: tạo token ở `/profile/ai-agents` và agent đọc bài trực tiếp qua MCP.

- [Đăng ký khóa học](https://dantech.academy/kotlin-accelerator/checkout)

---

- Bài trước: [Bảo Vệ Secrets Trong Build (Android + iOS)](https://dantech.academy/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-04-protect-secrets-at-build-time.md)
- Bài tiếp theo: [Ship App iOS](https://dantech.academy/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-07-ship-ios-app.md)
