# GitHub CI/CD

## Workflow: CI

File: `.github/workflows/ci.yml`

### Triggers

- Push to `develop`
- Pull requests targeting `develop`

### Jobs

#### `lint`
- `./gradlew detekt detektMetadataCommonMain :app:lint --continue`
- Uploads merged detekt SARIF to GitHub Code Scanning + lint HTML report

#### `test`
- `./gradlew test`
- Uploads test results XML

#### `android` (Build Android App)
- `./gradlew :app:assembleDebug`

#### `ios` (Build iOS App)
- Selects latest stable Xcode
- Caches `~/.konan`
- Builds shared KMP framework via `./gradlew :shared:linkDebugFrameworkIosSimulatorArm64`
- Runs `xcodebuild` for the iOS simulator (arm64-only, no signing)

### Environment

- `lint` + `test` + `android` jobs: `ubuntu-latest`, JDK 21
- `ios` job: `macos-latest` (Apple Silicon — required since there's no `iosSimulatorX64` target), JDK 21
- Concurrency: cancels in-progress runs for same branch

### Notes

- No release signing configured yet
- No instrumented/UI tests in CI (only unit tests)
- APK / iOS app are built but NOT uploaded as artifacts
- Detekt SARIF is uploaded to GitHub Code Scanning (requires GitHub Advanced Security for private repos)
