-
-
Notifications
You must be signed in to change notification settings - Fork 875
ci: Fix build #1865
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
ci: Fix build #1865
Conversation
🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review. |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
📝 WalkthroughWalkthroughCI workflows updated to reference Xcode 16.4.0 and align iOS/watchOS/tvOS/macOS versions across module matrices; docs runner moved to macos-15. Two source headers adjusted: conditional Bolts import in PFAnalytics.h and changed Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (4)
.github/workflows/release-automated.yml (2)
6-6
: Avoid hard-coded Xcode path; use setup-xcode and verify availability on macOS 15 runners.Hard-coding /Applications/Xcode_16.4.0.app is brittle across runner images. Prefer apple-actions/setup-xcode@v2 with xcode-version: '16.4', then rely on DEVELOPER_DIR set by the action. Also verify that this exact path exists on macos-15; otherwise the docs step will fail.
14-21
: Optional: Update Actions to current majors (compatibility with Node 22).actions/checkout@v2 and actions/setup-node@v2 are outdated; consider @v4 for both (and actions/cache@v4) to ensure support for Node 22 and benefit from fixes.
.github/workflows/release-manual-docs.yml (1)
9-9
: Same here: replace hard-coded Xcode 16.4 path with setup-xcode.Use apple-actions/setup-xcode@v2 (xcode-version: '16.4') and drop the env-level CI_XCODE_16. This is more robust across runner images.
.github/workflows/ci.yml (1)
12-12
: Prefer setup-xcode over hard-coded DEVELOPER_DIR; watch for macOS 14 + Xcode 16.4 mismatch.
- Hard-coding /Applications/Xcode_16.4.0.app may fail if that app isn’t present on the selected runner image. Use apple-actions/setup-xcode@v2 with matrix-provided xcode-version (e.g., '15.4'/'16.4') and remove DEVELOPER_DIR indirection.
- Some matrix entries run on macos-14 but reference CI_XCODE_16 (e.g., “Core Module, macOS 14”). Confirm macos-14 images actually contain Xcode 16.4 at that path; otherwise switch those to macos-15 or to CI_XCODE_15.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/ci.yml
(7 hunks).github/workflows/release-automated.yml
(1 hunks).github/workflows/release-manual-docs.yml
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: LiveQuery Module, tvOS 18
- GitHub Check: Core Module, iOS 18
- GitHub Check: LiveQuery Module, iOS 17
- GitHub Check: Core Module, macOS 14
- GitHub Check: docs
🔇 Additional comments (6)
.github/workflows/ci.yml (6)
33-41
: LGTM: Xcode 16 block versions updated (iOS/watchOS/tvOS/macOS).The 18.5/11.5/18.5/15 bumps align with current simulator images. Looks good.
49-55
: LGTM: Core Module iOS 18 updated to 18.5.
70-76
: LGTM: LiveQuery iOS 18 updated to 18.5.
90-96
: LGTM: LiveQuery watchOS updated to 11.5.
102-108
: LGTM: LiveQuery tvOS updated to 18.5.
187-187
: LGTM: Docs job runner moved to macos-15.Consistent with using the Xcode 16 toolchain for Jazzy docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1865 +/- ##
===========================================
+ Coverage 64.24% 82.65% +18.41%
===========================================
Files 201 282 +81
Lines 23233 30735 +7502
===========================================
+ Hits 14926 25405 +10479
+ Misses 8307 5330 -2977 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
.github/workflows/ci.yml (3)
12-12
: Verify Xcode 16.4 path exists on runnersThe hardcoded path must exist on macos-15 and any job that references CI_XCODE_16. Add an early sanity check to print selected toolchain and SDKs to fail fast if missing.
Example step to add before Build-Test:
- name: Verify Xcode toolchain run: | echo "DEVELOPER_DIR=${DEVELOPER_DIR}" xcodebuild -version xcodebuild -showsdks env: DEVELOPER_DIR: ${{ env[matrix.developerDir] && env[env[matrix.developerDir]] || env.CI_XCODE_16 }}
34-41
: Bumped simulator OS targets; ensure runtimes/devices exist under Xcode 16.4iOS/watchOS/tvOS/macOS set to 18.5/11.5/18.5/15. If flakes occur, add a pre-flight check (xcrun simctl list) or pre-create required devices.
Optional pre-flight:
- name: List runtimes/devices run: | xcrun simctl list runtimes xcrun simctl list devices env: DEVELOPER_DIR: ${{ env[matrix.developerDir] }}
187-201
: Docs runner moved to macos-15; uses CI_XCODE_16Ensure Xcode 16.4 is present on macos-15 image. Add a tiny sanity step to aid debugging (xcodebuild -version, swift --version).
Example:
- name: Verify Xcode for docs run: | xcodebuild -version xcrun swift --version env: DEVELOPER_DIR: ${{ env.CI_XCODE_16 }}
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ci.yml
(5 hunks)
🔇 Additional comments (9)
.github/workflows/ci.yml (9)
47-49
: Good pin for iOS 17 jobs to Xcode 15/macOS 14This improves availability of older runtimes/sims. LGTM.
51-55
: iOS 18 → 18.5 under Xcode 16.4Looks right. Please confirm the “iPhone 16” sim exists by default; if not, pre-create it via simctl.
56-59
: Core macOS 14 under Xcode 15Consistent with older target support. LGTM.
68-70
: LiveQuery iOS 17 pinned to Xcode 15/macOS 14Solid choice to avoid missing runtimes. LGTM.
72-76
: LiveQuery iOS 18 → 18.5 on Xcode 16.4Update looks correct.
Please confirm the “iPhone 16” device is available in this runner image/Xcode combo.
88-90
: watchOS 10 on Xcode 15/macOS 14Appropriate to keep older watchOS support. LGTM.
92-96
: watchOS 11 → 11.5 on Xcode 16.4Looks good; ensure Series 10 (46mm) sim exists in this image.
100-101
: tvOS 17 on Xcode 15/macOS 14Matches the pattern for older runtimes. LGTM.
104-107
: tvOS 18 → 18.5 on Xcode 16.4Version bump looks correct.
Confirm the tvOS 18.5 runtime is present in Xcode 16.4 on macos-15.
Re-running CI to see which jobs are just flaky |
@mtrezza Not sure where to go from here without removing those files from the test build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)
22-32
: Align Xcode 15 matrix to supported runtimes
Xcode 15.4 supports only iOS 17.5, watchOS 10.5 and tvOS 17.5 simulators—update accordingly:- name: Xcode 15 script: build:starters - iosVersion: '18.1' + iosVersion: '17.5' iosDeviceModel: iPhone 16 - watchOsVersion: '11.1' + watchOsVersion: '10.5' watchDeviceModel: Apple Watch Series 10 (46mm) - tvOsVersion: '18.1' + tvOsVersion: '17.5' tvDeviceModel: Apple TV macosVersion: 14 developerDir: CI_XCODE_15Verify that the device models remain valid for these OS versions.
🧹 Nitpick comments (2)
.github/workflows/release-manual-docs.yml (1)
9-9
: Pin to Xcode 16.4.0: verify runner image or use setup-xcode for robustnessmacos-15 must have /Applications/Xcode_16.4.0.app present. Consider setup-xcode to avoid image drift.
Example insertion before “Create Jazzy Docs”:
+ - name: Select Xcode 16.4.0 + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '16.4'.github/workflows/ci.yml (1)
187-201
: Docs job runner moved to macos-15 — consider pinning Ruby version for parity with manual docsTo avoid tooling drift, pin Ruby like in release-manual-docs (3.1.0).
- name: Setup Ruby uses: ruby/setup-ruby@v1 with: + ruby-version: '3.1.0' bundler-cache: true
Also consider a short preflight to surface DEVELOPER_DIR selection:
+ - name: Xcode env preflight + run: | + xcode-select -p + xcodebuild -version
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/ci.yml
(5 hunks).github/workflows/release-automated.yml
(1 hunks).github/workflows/release-manual-docs.yml
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- .github/workflows/release-automated.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: Core Module, iOS 17
- GitHub Check: LiveQuery Module, iOS 18
- GitHub Check: Core Module, macOS 15
- GitHub Check: Xcode 15
- GitHub Check: Xcode 16
🔇 Additional comments (2)
.github/workflows/ci.yml (2)
12-12
: CI_XCODE_16 bumped to 16.4.0 — LGTM; confirm availability on macos-15 runnersChange looks good. Ensure Xcode_16.4.0 exists on macos-15 images used in this workflow.
34-41
: Updated Xcode 16 block to 18.5/11.5/18.5 + macOS 15 — LGTMThese versions align with Xcode 16 usage.
Which files? |
UserFileCodingLogicTests, UserControllerTests, UserUnitTests, not sure if there are others. I don't know what the underlying issue is. |
@coderabbitai can you analyze the issue and propose a solution? |
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed:
Length of output: 3543 🏁 Script executed:
Length of output: 11429 🏁 Script executed:
Length of output: 1280 🏁 Script executed:
Length of output: 803 🏁 Script executed:
Length of output: 14981 @mtrezza I've identified the root cause of the CI failures. The issue is that the "Xcode 15" matrix entry in the CI workflow is attempting to use iOS 18.1, watchOS 11.1, and tvOS 18.1 simulators, which are not available in Xcode 15.4. Problem AnalysisAccording to the README compatibility matrix:
However, lines 21-30 in - name: Xcode 15
script: build:starters
iosVersion: '18.1' # ❌ Not available in Xcode 15
watchOsVersion: '11.1' # ❌ Not available in Xcode 15
tvOsVersion: '18.1' # ❌ Not available in Xcode 15
macosVersion: 14
developerDir: CI_XCODE_15 Proposed SolutionUpdate the "Xcode 15" entry to use the correct platform versions that are available in Xcode 15: - name: Xcode 15
script: build:starters
iosVersion: '17.5'
iosDeviceModel: iPhone 15
watchOsVersion: '10.5'
watchDeviceModel: Apple Watch Series 9 (45mm)
tvOsVersion: '17.5'
tvDeviceModel: Apple TV
macosVersion: 14
developerDir: CI_XCODE_15 This aligns with the versions used in the other "iOS 17", "watchOS 10", and "tvOS 17" test jobs, which are all correctly using Xcode 15. The test failures for |
This reverts commit 86c88ce.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
Rakefile
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: LiveQuery Module, macOS 14
- GitHub Check: Xcode 15
- GitHub Check: LiveQuery Module, macOS 15
- GitHub Check: Core Module, macOS 15
- GitHub Check: Core Module, macOS 14
This reverts commit e8d6980.
@mtrezza Looks like an issue using modules on MacOS 15. I got these messages when I downloaded the artifact logs from the failed builds.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
Parse/Parse.xcodeproj/project.pbxproj
(4 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: Core Module, macOS 14
- GitHub Check: Core Module, macOS 15
- GitHub Check: Xcode 15
- GitHub Check: Core Module, iOS 18
- GitHub Check: Xcode 16
@mtrezza I'm going to upgrade to MacOS 15 might take a while |
iOS tests passed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)
24-30
: Xcode 15 job still has incompatible simulator versions — contradicts PR objective.The "Xcode 15" job still specifies iOS 18.1, watchOS 11.1, and tvOS 18.1, which are not available in Xcode 15 and contradict the PR's stated goal of aligning with the README compatibility matrix (Xcode 15 → iOS 17 / macOS 14 / watchOS 10 / tvOS 17). This was the root cause of the original CI failures per the PR context.
According to the PR objectives and the coderabbitai analysis, the Xcode 15 job should be updated to iOS 17.5, watchOS 10.5, tvOS 17.5, and use iPhone 15 as the device model.
Apply this diff to fix the Xcode 15 job:
- name: Xcode 15 script: build:starters - iosVersion: '18.1' - iosDeviceModel: iPhone 16 - watchOsVersion: '11.1' + iosVersion: '17.5' + iosDeviceModel: iPhone 15 + watchOsVersion: '10.5' watchDeviceModel: Apple Watch Series 9 (45mm) - tvOsVersion: '18.1' + tvOsVersion: '17.5' tvDeviceModel: Apple TV macosVersion: 14 developerDir: CI_XCODE_15
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ci.yml
(4 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: LiveQuery Module, iOS 18
- GitHub Check: Core Module, macOS 14
- GitHub Check: Xcode 15
- GitHub Check: Core Module, iOS 17
- GitHub Check: Xcode 16
🔇 Additional comments (1)
.github/workflows/ci.yml (1)
92-95
: Verify watchOS 11 macOS/Xcode pairing is intentional.The "LiveQuery Module, watchOS 11" entry (lines 92–95) is configured with macOS 15 and
CI_XCODE_16
(Xcode 16.4.0), which aligns with the iOS 18 ecosystem. However, the commented PR objectives mention that watchOS 11 should pair with Xcode 16 → macOS 15, which is correct. Confirm this intentional pairing aligns with your test coverage strategy (e.g., you are deliberately testing watchOS 11 only against the Xcode 16 ecosystem).
New Pull Request Checklist
Issue Description
Xcode, iOS and MacOS versions not aligned to readme
Summary by CodeRabbit
Chores
Bug Fixes
Documentation