ci: replace downloadPlatform with simctl create - #16494
Conversation
Replace slow `xcodebuild -downloadPlatform` calls in GitHub Actions workflows with `xcrun simctl create` using installed runtimes. - Add `scripts/setup_simulator.sh` to dynamically create custom simulators using the latest available installed runtime. - Add reusable `.github/actions/setup_simulator` composite action. - Update `scripts/build.sh` to automatically set up and target the new `Firebase-` prefixed simulator devices. - Replace `xcodebuild -downloadPlatform` calls in workflow files.
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. |
Summary of ChangesThis pull request optimizes the CI pipeline by replacing inefficient platform downloading with a more performant and reliable approach to simulator management. By dynamically creating and targeting specific simulator devices, the changes reduce build times and ensure a more predictable testing environment across different platforms. Highlights
New Features🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
Activity
|
Normalize input platform strings to lowercase and strip trailing flags in `scripts/setup_simulator.sh` so matrix inputs like `tvos` or `watchos --skip-tests` correctly match their target platform instead of falling through to the iPhone default.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a new setup_simulator.sh script and a corresponding GitHub Action to dynamically create Apple simulators using the latest installed runtimes. It also updates build.sh to use these standardized simulator names. The review feedback focuses on improving the robustness and performance of the new script, specifically by refining simulator name matching, adding a non-macOS platform check, robustly parsing runtime identifiers, and deferring the visionOS runtime query to avoid unnecessary overhead on other platforms.
Replaced the slow
xcodebuild -downloadPlatformcalls in GitHub Actions workflows withxcrun simctl createusing installed runtimes.scripts/setup_simulator.shto dynamically create custom simulators using the latest available installed runtime in the runner image..github/actions/setup_simulatorcomposite action.scripts/build.shto automatically set up and target the newFirebase-prefixed simulator devices.xcodebuild -downloadPlatformcalls in workflow files.#no-changelog