@@ -9,8 +9,9 @@ This folder contains the source-of-truth config for the CI workflow:
99## What Runs Automatically
1010
1111- ` pull_request ` (` opened ` , ` reopened ` , ` synchronize ` , ` ready_for_review ` ): default PR pipeline
12- - SDK build matrix (` swift build ` for all library targets + iOS package build)
13- - test app build matrix (` AdaptyRecipes-SwiftUI ` )
12+ - SDK target build matrix (` swift build ` for all library targets)
13+ - iOS package build (` Adapty-Package ` ) on primary Xcode (` sdk_tests.xcode ` )
14+ - test app build (` AdaptyRecipes-SwiftUI ` ) on primary Xcode (` sdk_tests.xcode ` )
1415 - one-Xcode macOS SDK build
1516 - SDK tests matrix (` swift test ` )
1617- ` workflow_dispatch ` : manual run with per-step toggles and optional JSON overrides
@@ -23,12 +24,12 @@ Note: there is no automatic `push` trigger for this workflow.
2324` schema_version: 2 ` config keys:
2425
2526- ` build_sdk_targets ` (` bool ` ): default enable SDK matrix build + macOS SDK build
26- - ` build_test_app ` (` bool ` ): default enable test app matrix build
27+ - ` build_test_app ` (` bool ` ): default enable test app build on primary Xcode ( ` sdk_tests.xcode ` )
2728- ` run_tests ` (` bool ` ): default enable ` swift test ` matrix
2829- ` lint_pods ` (` bool ` ): default disable CocoaPods lint job (can be enabled in manual runs)
2930- ` build_errors_whitelist ` (` list ` ): allowlist for test app build failures only
3031- ` test_errors_whitelist ` (` list ` ): allowlist for ` swift test ` failures
31- - ` build_matrix ` (` list ` ): Xcode matrix for SDK/test- app jobs
32+ - ` build_matrix ` (` list ` ): Xcode matrix for SDK jobs (and for selecting primary-Xcode entry used by iOS package /test app builds)
3233- ` sdk_tests ` (` object ` ): runner/Xcode for one-Xcode jobs (` macOS build ` , ` pod lib lint ` )
3334- ` sdk_tests_matrix ` (` list ` ): Xcode matrix for ` swift test `
3435
@@ -58,6 +59,7 @@ Boolean defaults are duplicated in two places by design:
5859- If matrix entry is ` informational: true ` and Xcode is unavailable, that entry is skipped with warning.
5960- If matrix entry is ` informational: false ` and Xcode is unavailable, that entry fails.
6061- One-Xcode jobs (` SDK macOS build ` , ` CocoaPods lint ` when enabled) fail when configured Xcode is unavailable.
62+ - iOS-specific steps (iOS package build + test app build) run only on primary Xcode (` sdk_tests.xcode ` ).
6163- Test app build does not patch placeholders with ` sed ` ; CI writes a dedicated ` AppConstants.swift ` with dummy values before ` xcodebuild ` .
6264
6365## Manual Run Inputs (` workflow_dispatch ` )
@@ -81,6 +83,7 @@ Validation rules:
8183- At least one toggle must be ` true ` .
8284- Matrix override JSON must contain at least one matrix entry.
8385- Matrix entries must be unique by ` runner + xcode ` .
86+ - If ` build_sdk_targets=true ` or ` build_test_app=true ` , build matrix must include primary Xcode (` sdk_tests.xcode ` ).
8487- Empty whitelist input means "use values from ` ci-run-config.json ` ".
8588
8689## Manual Run Guide for QA
@@ -94,7 +97,7 @@ Validation rules:
94975 . In ` Use workflow from ` , select the branch.
95986 . Configure boolean toggles:
9699 - ` build_sdk_targets ` : run SDK matrix + iOS package + macOS SDK build.
97- - ` build_test_app ` : run test app matrix build.
100+ - ` build_test_app ` : run test app build on primary Xcode ( ` sdk_tests.xcode ` ) .
98101 - ` run_tests ` : run ` swift test ` matrix.
99102 - ` lint_pods ` : run ` pod lib lint ` .
1001037 . (Optional) Fill JSON override fields:
0 commit comments