Skip to content

[CI] Fix performance test#4064

Merged
testableapple merged 11 commits intodevelopfrom
ci/xcmetrics-firebase
Apr 15, 2026
Merged

[CI] Fix performance test#4064
testableapple merged 11 commits intodevelopfrom
ci/xcmetrics-firebase

Conversation

@testableapple
Copy link
Copy Markdown
Contributor

@testableapple testableapple commented Apr 13, 2026

Test

Summary by CodeRabbit

  • Chores
    • Testing infrastructure now supports configurable device targets and iOS versions for more flexible build validation; defaults updated to the latest supported device and OS.
    • The common UI framework is now linked and embedded into app bundles and extensions so the shared UI is packaged with releases.

@testableapple testableapple requested a review from a team as a code owner April 13, 2026 12:51
@testableapple testableapple added the 🤖 CI/CD Any work related to CI/CD label Apr 13, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 13, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fd27826a-eb23-4884-9d7d-e390ed95281c

📥 Commits

Reviewing files that changed from the base of the PR and between dd23177 and f9094ee.

📒 Files selected for processing (2)
  • StreamChat.xcodeproj/project.pbxproj
  • fastlane/Fastfile
🚧 Files skipped from review as they are similar to previous changes (1)
  • fastlane/Fastfile

📝 Walkthrough

Walkthrough

The Fastlane xcmetrics lane was changed to parameterize Firebase Test Lab device model and iOS version (new in-lane defaults set to iphone14pro and 16.6) and to add an explicit --project argument; Xcode project build phases were updated to add and embed StreamChatCommonUI.framework for relevant targets.

Changes

Cohort / File(s) Summary
Fastlane Configuration
fastlane/Fastfile
Replaced hardcoded Firebase Test Lab device spec model=iphone14pro,version=16.6 with interpolated device_model and ios_version variables (defaults iphone14pro, 16.6); added --project #{github_repo.split('/').last} to the gcloud invocation; updated gsutil cp path to use #{device_model}-#{ios_version}-en-portrait.
Xcode Project Build Phases
StreamChat.xcodeproj/project.pbxproj
Added StreamChatCommonUI.framework to Frameworks and Embed Frameworks build phases by inserting new PBXBuildFile entries and updating affected phases' files lists (code sign and remove headers copy options set where applicable).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

I nibble at configs, tidy and spry,
Swapping hardcode for hops that fly,
Frameworks tucked into bundles snug,
Fastlane hums — a rabbit's hug 🐇✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title '[CI] Fix performance test' is partially related to the changeset but lacks specificity about the actual changes made. Consider using a more descriptive title that specifies the nature of the fix, such as '[CI] Parameterize Firebase Test Lab device configuration for xcmetrics' to better reflect the actual implementation changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/xcmetrics-firebase

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@testableapple testableapple marked this pull request as draft April 13, 2026 12:53
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a 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

🧹 Nitpick comments (1)
fastlane/Fastfile (1)

275-276: Make ios_version and device_model true lane inputs.

These are still fixed defaults in code. Consider reading from options/ENV with fallback defaults so future bumps don’t require code edits.

Suggested refactor
-  ios_version = '18.3'
-  device_model = 'iphone16pro'
+  ios_version = options[:ios_version] || ENV['FIREBASE_IOS_VERSION'] || '18.3'
+  device_model = options[:device_model] || ENV['FIREBASE_DEVICE_MODEL'] || 'iphone16pro'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@fastlane/Fastfile` around lines 275 - 276, Replace the hardcoded ios_version
and device_model with lane inputs that fall back to defaults: read from the
lane's options (or ENV) and set ios_version = options[:ios_version] ||
ENV['IOS_VERSION'] || '18.3' and device_model = options[:device_model] ||
ENV['DEVICE_MODEL'] || 'iphone16pro'; update the lane signature to declare these
as accepted parameters and use those variables wherever ios_version and
device_model are referenced so future bumps can be provided via CLI/ENV without
editing the Fastfile.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@fastlane/Fastfile`:
- Around line 280-286: The Firebase Test Lab run currently may use an
unsupported device/version (variables device_model and ios_version) causing
gcloud firebase test ios run to fail and the subsequent gsutil copy of
xcodebuild_output.log to error; update the Fastfile so before calling sh("gcloud
firebase test ios run ...") you validate or select a supported device+version
pair (e.g., call gcloud firebase test ios models list and gcloud firebase test
ios versions list or consult a maintained allowlist) and fallback to a
known-compatible combo if the requested combo is unsupported, and also guard the
artifact copy (the sh("gsutil cp -r
#{testlab_bucket}/test_output/#{device_model}-#{ios_version}-en-portrait/xcodebuild_output.log
xcodebuild_output.log") line) to run only if the test run succeeded or the
expected output directory/file exists (or skip copying and surface the earlier
firebase_error) to avoid a second failure.

---

Nitpick comments:
In `@fastlane/Fastfile`:
- Around line 275-276: Replace the hardcoded ios_version and device_model with
lane inputs that fall back to defaults: read from the lane's options (or ENV)
and set ios_version = options[:ios_version] || ENV['IOS_VERSION'] || '18.3' and
device_model = options[:device_model] || ENV['DEVICE_MODEL'] || 'iphone16pro';
update the lane signature to declare these as accepted parameters and use those
variables wherever ios_version and device_model are referenced so future bumps
can be provided via CLI/ENV without editing the Fastfile.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 553b2ff8-2cf5-466d-90c8-9209a56a810d

📥 Commits

Reviewing files that changed from the base of the PR and between 612a3c4 and dd23177.

📒 Files selected for processing (1)
  • fastlane/Fastfile

Comment thread fastlane/Fastfile Outdated
@testableapple testableapple changed the title [CI] Bump iOS version on Firebase [CI] Fix performance test Apr 14, 2026
@testableapple testableapple marked this pull request as ready for review April 14, 2026 19:52
@Stream-SDK-Bot
Copy link
Copy Markdown
Collaborator

SDK Size

title develop branch diff status
StreamChat 6.74 MB 6.74 MB 0 KB 🟢
StreamChatUI 4.29 MB 4.29 MB 0 KB 🟢
StreamChatCommonUI 0.75 MB 0.75 MB 0 KB 🟢

@testableapple testableapple enabled auto-merge (squash) April 14, 2026 20:01
@sonarqubecloud
Copy link
Copy Markdown

@testableapple testableapple merged commit aee944c into develop Apr 15, 2026
15 checks passed
@testableapple testableapple deleted the ci/xcmetrics-firebase branch April 15, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖 CI/CD Any work related to CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants