chore: don't change system xcode on CI - WPB-27247#5035
Conversation
|
|
||
| # Fetch dependencies and prepare for building a release | ||
| def prepare_for_release(options) | ||
| xcode_version = options[:xcode_version] |
There was a problem hiding this comment.
xcode_version was unused
There was a problem hiding this comment.
Pull request overview
This PR updates Wire iOS CI to avoid globally switching Xcode with xcode-select (which can conflict on shared/self-hosted macOS runners) by selecting Xcode per job/process via DEVELOPER_DIR, and centralizes Xcode setup into a reusable composite action.
Changes:
- Introduces a local composite GitHub Action (
.github/actions/setup-xcode) that reads.xcode-versionand exportsDEVELOPER_DIRfor the job. - Updates reusable workflows/composite setup to use the new local action instead of
maxim-lobanov/setup-xcode. - Removes the
xcode-installRuby dependency and updates Fastlane to usexcodes(select_for_current_build_only: true).
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| setup.sh | Updates the Xcode version prerequisite message to mention DEVELOPER_DIR as an alternative to global xcode-select. |
| Gemfile | Removes xcode-install dependency. |
| Gemfile.lock | Locks in the dependency removal for xcode-install. |
| fastlane/Fastfile | Switches Xcode selection calls to Fastlane’s xcodes(...) action. |
| .github/workflows/_reusable_run_tests.yml | Uses the new local setup-xcode composite action for Xcode setup. |
| .github/workflows/_reusable_app_release.yml | Uses the new local setup-xcode composite action for Xcode setup. |
| .github/actions/setup-xcode/action.yaml | Adds new composite action to set DEVELOPER_DIR based on .xcode-version. |
| .github/actions/setup-test-environment/action.yaml | Switches environment setup to use the new local setup-xcode action and preserves Xcode version output usage for cache keys. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Test Results 25 files 1 276 suites 12m 38s ⏱️ Results for commit 76776d1. ♻️ This comment has been updated with latest results. Summary: workflow run #29829726026 |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Issue
Currently our GitHub action workflows use
xcode-selectto select the version of Xcode defined by the.xcode-versionfile. When we move to in house runners, we will have multiple concurrent runners operating directly on the host macs (i.e. not running in a VM). Allowingxcode-selectwill mean the GitHub action jobs can conflict with each other. Instead in this PR we set the DEVELOPER_DIR which sets xcode build tools for the current process.This PR also migrates fastlane to use the built in
xcodescommand which replaces thexcode-install3rd party gem.Testing
Run GitHub action workflows. Test run here: https://github.com/wireapp/wire-ios/actions/runs/29829726026
Checklist
[WPB-XXX].