# CI For KMP

> What the repo's CI checks on every pull request, and which parts of the KMP app you still have to check yourself on a Mac.

- URL: https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-06-ci-for-kmp
- Course: [Mobile Action Pro](https://dantech.academy/en/courses/kotlin-accelerator.md)
- Module: Testing, Security, and Release
- Duration: 12 min
- Difficulty: intermediate
- Access: Enrolled students
- Tiếng Việt: https://dantech.academy/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-06-ci-for-kmp.md

## Objectives

- Read pr-check.yml and explain why it needs both testDebugUnitTest and testAndroidHostTest
- Explain how the workflow handles secrets: placeholder values in local.properties, google-services.json through a repository secret
- Point out what CI doesn't check yet (iOS, coverage, release) and evaluate a macOS job before adding one

## In this lesson

1. Lesson Goal
2. Part 1: Two Workflows, Two Different Jobs
3. Part 2: Read pr-check.yml Step By Step
4. Part 3: What CI Doesn't Check Yet
5. Part 4: Sketch Of A macOS Job (Not Verified)
6. Code Reading Path
7. Exercises
8. Troubleshooting Table
9. References
10. Key Points

## Study with an AI agent

The full lesson is for students of this course. Students open the lesson on the web and press **Markdown** to copy all of it, then paste it into Claude, ChatGPT, Cursor or whichever agent you use. Faster: mint a token at `/profile/ai-agents` and your agent reads lessons over MCP.

- [Join the course](https://dantech.academy/en/kotlin-accelerator/checkout)

---

- Previous lesson: [Protect Secrets In The Build (Android + iOS)](https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-04-protect-secrets-at-build-time.md)
- Next lesson: [Ship The iOS App](https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/05-testing-security-release/lesson-07-ship-ios-app.md)
