-
Notifications
You must be signed in to change notification settings - Fork 225
[CI] Support Xcode 26 #3825
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: develop
Are you sure you want to change the base?
[CI] Support Xcode 26 #3825
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,33 +21,28 @@ jobs: | |
strategy: | ||
matrix: | ||
include: | ||
- ios: 18.5 | ||
xcode: 16.4 | ||
os: macos-15 | ||
- ios: "26.0" | ||
device: "iPhone 17 Pro" | ||
setup_runtime: false | ||
- ios: "18.5" | ||
device: "iPhone 16 Pro" | ||
setup_runtime: false | ||
- ios: 17.5 | ||
xcode: 15.4 | ||
os: macos-14 | ||
- ios: "17.5" | ||
device: "iPhone 15 Pro" | ||
setup_runtime: false | ||
- ios: 16.4 | ||
xcode: 15.3 # fails on 15.4 | ||
os: macos-14 | ||
setup_runtime: true | ||
- ios: "16.4" | ||
device: "iPhone 14 Pro" | ||
setup_runtime: true | ||
- ios: 15.5 | ||
xcode: 15.3 # fails on 15.4 | ||
os: macos-14 | ||
- ios: "15.5" | ||
device: "iPhone 13 Pro" | ||
setup_runtime: true | ||
fail-fast: false | ||
runs-on: ${{ matrix.os }} | ||
runs-on: macos-15 | ||
env: | ||
GITHUB_EVENT: ${{ toJson(github.event) }} | ||
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }} | ||
STREAM_DEMO_APP_SECRET: ${{ secrets.STREAM_DEMO_APP_SECRET }} | ||
XCODE_VERSION: ${{ matrix.xcode }} | ||
XCODE_VERSION: "26.0.1" | ||
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})" # For the Allure report | ||
steps: | ||
- uses: actions/[email protected] | ||
|
@@ -94,30 +89,25 @@ jobs: | |
strategy: | ||
matrix: | ||
include: | ||
- ios: 18.5 | ||
xcode: 16.4 | ||
os: macos-15 | ||
- ios: "26.0" | ||
device: "iPhone 17 Pro" | ||
setup_runtime: false | ||
- ios: "18.5" | ||
device: "iPhone 16 Pro" | ||
setup_runtime: false | ||
- ios: 17.5 | ||
xcode: 15.4 | ||
os: macos-14 | ||
- ios: "17.5" | ||
device: "iPhone 15 Pro" | ||
setup_runtime: false | ||
- ios: 16.4 | ||
xcode: 15.3 # fails on 15.4 | ||
os: macos-14 | ||
setup_runtime: true | ||
- ios: "16.4" | ||
device: "iPhone 14 Pro" | ||
setup_runtime: true | ||
- ios: 15.5 | ||
xcode: 15.3 # fails on 15.4 | ||
os: macos-14 | ||
- ios: "15.5" | ||
device: "iPhone 13 Pro" | ||
setup_runtime: true | ||
fail-fast: false | ||
runs-on: ${{ matrix.os }} | ||
runs-on: macos-15 | ||
env: | ||
XCODE_VERSION: ${{ matrix.xcode }} | ||
XCODE_VERSION: "26.0.1" | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/bootstrap | ||
|
@@ -147,24 +137,25 @@ jobs: | |
fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/* | ||
build-old-xcode: | ||
name: Build LLC + UI (Xcode 15) | ||
name: Build LLC + UI (Old Xcode) | ||
runs-on: macos-14 | ||
env: | ||
XCODE_VERSION: "15.4" | ||
XCODE_VERSION: "16.1" | ||
steps: | ||
- name: Connect Bot | ||
uses: webfactory/[email protected] | ||
with: | ||
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }} | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/xcode-cache | ||
- uses: ./.github/actions/ruby-cache | ||
- name: List Xcode versions | ||
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'" | ||
- name: Build LLC | ||
run: bundle exec fastlane test device:"iPhone 8" build_for_testing:true | ||
run: bundle exec fastlane test device:"iPhone 16" build_for_testing:true | ||
timeout-minutes: 25 | ||
- name: Build UI | ||
run: bundle exec fastlane test_ui device:"iPhone 8" build_for_testing:true | ||
run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true | ||
timeout-minutes: 25 | ||
- name: Build XCFrameworks | ||
run: bundle exec fastlane build_xcframeworks | ||
|
@@ -177,7 +168,7 @@ jobs: | |
name: Automated Code Review | ||
runs-on: macos-14 | ||
env: | ||
XCODE_VERSION: "15.4" | ||
XCODE_VERSION: "16.1" | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/bootstrap | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,7 +20,7 @@ concurrency: | |
|
||
env: | ||
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI | ||
IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.5)" | ||
IOS_SIMULATOR_DEVICE: "iPhone 17 Pro (26.0)" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix simulator runtime identifier Line 23 now points 🤖 Prompt for AI Agents
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
GITHUB_PR_NUM: ${{ github.event.pull_request.number }} | ||
|
||
|
@@ -48,7 +48,7 @@ jobs: | |
name: Automated Code Review | ||
runs-on: macos-14 | ||
env: | ||
XCODE_VERSION: "15.4" | ||
XCODE_VERSION: "16.1" | ||
if: ${{ github.event.inputs.record_snapshots != 'true' }} | ||
steps: | ||
- uses: actions/[email protected] | ||
|
@@ -63,21 +63,22 @@ jobs: | |
if: startsWith(github.event.pull_request.head.ref, 'release/') | ||
|
||
build-old-xcode: | ||
name: Build LLC + UI (Xcode 15) | ||
name: Build SDKs (Old Xcode) | ||
runs-on: macos-14 | ||
if: ${{ github.event.inputs.record_snapshots != 'true' }} | ||
env: | ||
XCODE_VERSION: "15.4" | ||
XCODE_VERSION: "16.1" | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/xcode-cache | ||
- uses: ./.github/actions/ruby-cache | ||
- name: List Xcode versions | ||
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'" | ||
- name: Build LLC | ||
run: bundle exec fastlane test device:"iPhone 13" build_for_testing:true | ||
run: bundle exec fastlane test device:"iPhone 16" build_for_testing:true | ||
timeout-minutes: 25 | ||
- name: Build UI | ||
run: bundle exec fastlane test_ui device:"iPhone 13" build_for_testing:true | ||
run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true | ||
timeout-minutes: 25 | ||
|
||
test-llc-debug: | ||
|
@@ -179,6 +180,8 @@ jobs: | |
- build-test-app-and-frameworks | ||
env: | ||
LAUNCH_ID: ${{ needs.allure_testops_launch.outputs.launch_id }} | ||
IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.5)" # TODO: IOS-1181 | ||
XCODE_VERSION: "16.4" # TODO: IOS-1181 | ||
strategy: | ||
matrix: | ||
batch: [0, 1] | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,25 @@ | ||
Pod::Spec.new do |spec| | ||
spec.name = "StreamChat-XCFramework" | ||
spec.version = "4.89.0" | ||
spec.summary = "StreamChat iOS Client" | ||
spec.description = "stream-chat-swift is the official Swift client for Stream Chat, a service for building chat applications." | ||
spec.name = 'StreamChat-XCFramework' | ||
spec.version = '4.89.0' | ||
spec.summary = 'StreamChat iOS Client' | ||
spec.description = 'stream-chat-swift is the official Swift client for Stream Chat, a service for building chat applications.' | ||
|
||
spec.homepage = "https://getstream.io/chat/" | ||
spec.license = { :type => "BSD-3", :file => "LICENSE" } | ||
spec.author = { "getstream.io" => "[email protected]" } | ||
spec.social_media_url = "https://getstream.io" | ||
spec.homepage = 'https://getstream.io/chat/' | ||
spec.license = { type: 'BSD-3', file: 'LICENSE' } | ||
spec.author = { 'getstream.io' => '[email protected]' } | ||
spec.social_media_url = 'https://getstream.io' | ||
|
||
spec.swift_version = '5.7' | ||
spec.ios.deployment_target = '13.0' | ||
spec.swift_version = '5.9' | ||
spec.ios.deployment_target = '13.0' | ||
spec.requires_arc = true | ||
|
||
spec.framework = "Foundation" | ||
spec.ios.framework = "UIKit" | ||
spec.framework = 'Foundation' | ||
spec.ios.framework = 'UIKit' | ||
|
||
spec.module_name = "StreamChat" | ||
spec.source = { :http => "https://github.com/GetStream/stream-chat-swift/releases/download/#{spec.version}/#{spec.module_name}.zip" } | ||
spec.module_name = 'StreamChat' | ||
spec.source = { http: "https://github.com/GetStream/stream-chat-swift/releases/download/#{spec.version}/#{spec.module_name}.zip" } | ||
spec.vendored_frameworks = "#{spec.module_name}.xcframework" | ||
spec.preserve_paths = "#{spec.module_name}.xcframework/*" | ||
|
||
spec.cocoapods_version = ">= 1.11.0" | ||
spec.cocoapods_version = '>= 1.11.0' | ||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,24 @@ | ||
Pod::Spec.new do |spec| | ||
spec.name = "StreamChat" | ||
spec.version = "4.89.0" | ||
spec.summary = "StreamChat iOS Chat Client" | ||
spec.description = "stream-chat-swift is the official Swift client for Stream Chat, a service for building chat applications." | ||
spec.name = 'StreamChat' | ||
spec.version = '4.89.0' | ||
spec.summary = 'StreamChat iOS Chat Client' | ||
spec.description = 'stream-chat-swift is the official Swift client for Stream Chat, a service for building chat applications.' | ||
|
||
spec.homepage = "https://getstream.io/chat/" | ||
spec.license = { :type => "BSD-3", :file => "LICENSE" } | ||
spec.author = { "getstream.io" => "[email protected]" } | ||
spec.social_media_url = "https://getstream.io" | ||
spec.homepage = 'https://getstream.io/chat/' | ||
spec.license = { type: 'BSD-3', file: 'LICENSE' } | ||
spec.author = { 'getstream.io' => '[email protected]' } | ||
spec.social_media_url = 'https://getstream.io' | ||
|
||
spec.swift_version = '5.7' | ||
spec.swift_version = '5.9' | ||
spec.ios.deployment_target = '13.0' | ||
spec.osx.deployment_target = '11.0' | ||
spec.requires_arc = true | ||
|
||
spec.framework = "Foundation" | ||
spec.ios.framework = "UIKit" | ||
spec.framework = 'Foundation' | ||
spec.ios.framework = 'UIKit' | ||
|
||
spec.module_name = "StreamChat" | ||
spec.source = { :git => "https://github.com/GetStream/stream-chat-swift.git", :tag => "#{spec.version}" } | ||
spec.source_files = ["Sources/StreamChat/**/*.swift"] | ||
spec.resource_bundles = { "StreamChat" => ["Sources/StreamChat/**/*.xcdatamodeld"] } | ||
spec.module_name = 'StreamChat' | ||
spec.source = { git: 'https://github.com/GetStream/stream-chat-swift.git', tag: "#{spec.version}" } | ||
spec.source_files = ['Sources/StreamChat/**/*.swift'] | ||
spec.resource_bundles = { 'StreamChat' => ['Sources/StreamChat/**/*.xcdatamodeld'] } | ||
end |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -1,26 +1,26 @@ | ||||||
Pod::Spec.new do |spec| | ||||||
spec.name = "StreamChatUI-XCFramework" | ||||||
spec.version = "4.89.0" | ||||||
spec.summary = "StreamChat UI Components" | ||||||
spec.description = "StreamChatUI SDK offers flexible UI components able to display data provided by StreamChat SDK." | ||||||
spec.name = 'StreamChatUI-XCFramework' | ||||||
spec.version = '4.89.0' | ||||||
spec.summary = 'StreamChat UI Components' | ||||||
spec.description = 'StreamChatUI SDK offers flexible UI components able to display data provided by StreamChat SDK.' | ||||||
|
||||||
spec.homepage = "https://getstream.io/chat/" | ||||||
spec.license = { :type => "BSD-3", :file => "LICENSE" } | ||||||
spec.author = { "getstream.io" => "[email protected]" } | ||||||
spec.social_media_url = "https://getstream.io" | ||||||
spec.homepage = 'https://getstream.io/chat/' | ||||||
spec.license = { type: 'BSD-3', file: 'LICENSE' } | ||||||
spec.author = { 'getstream.io' => '[email protected]' } | ||||||
spec.social_media_url = 'https://getstream.io' | ||||||
|
||||||
spec.swift_version = '5.7' | ||||||
spec.platform = :ios, "13.0" | ||||||
spec.swift_version = '5.9' | ||||||
spec.platform = :ios, '13.0' | ||||||
spec.requires_arc = true | ||||||
|
||||||
spec.framework = "Foundation", "UIKit" | ||||||
spec.framework = 'Foundation', 'UIKit' | ||||||
|
||||||
spec.module_name = "StreamChatUI" | ||||||
spec.source = { :http => "https://github.com/GetStream/stream-chat-swift/releases/download//#{spec.version}/#{spec.module_name}.zip" } | ||||||
spec.module_name = 'StreamChatUI' | ||||||
spec.source = { http: "https://github.com/GetStream/stream-chat-swift/releases/download//#{spec.version}/#{spec.module_name}.zip" } | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix the double slash in the source URL. The URL contains a double slash after Apply this diff to fix the URL: - spec.source = { http: "https://github.com/GetStream/stream-chat-swift/releases/download//#{spec.version}/#{spec.module_name}.zip" }
+ spec.source = { http: "https://github.com/GetStream/stream-chat-swift/releases/download/#{spec.version}/#{spec.module_name}.zip" } 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
||||||
spec.vendored_frameworks = "#{spec.module_name}.xcframework" | ||||||
spec.preserve_paths = "#{spec.module_name}.xcframework/*" | ||||||
|
||||||
spec.dependency "StreamChat-XCFramework", "#{spec.version}" | ||||||
spec.dependency 'StreamChat-XCFramework', "#{spec.version}" | ||||||
|
||||||
spec.cocoapods_version = ">= 1.11.0" | ||||||
spec.cocoapods_version = '>= 1.11.0' | ||||||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,25 @@ | ||
Pod::Spec.new do |spec| | ||
spec.name = "StreamChatUI" | ||
spec.version = "4.89.0" | ||
spec.summary = "StreamChat UI Components" | ||
spec.description = "StreamChatUI SDK offers flexible UI components able to display data provided by StreamChat SDK." | ||
spec.name = 'StreamChatUI' | ||
spec.version = '4.89.0' | ||
spec.summary = 'StreamChat UI Components' | ||
spec.description = 'StreamChatUI SDK offers flexible UI components able to display data provided by StreamChat SDK.' | ||
|
||
spec.homepage = "https://getstream.io/chat/" | ||
spec.license = { :type => "BSD-3", :file => "LICENSE" } | ||
spec.author = { "getstream.io" => "[email protected]" } | ||
spec.social_media_url = "https://getstream.io" | ||
spec.homepage = 'https://getstream.io/chat/' | ||
spec.license = { type: 'BSD-3', file: 'LICENSE' } | ||
spec.author = { 'getstream.io' => '[email protected]' } | ||
spec.social_media_url = 'https://getstream.io' | ||
|
||
spec.swift_version = '5.7' | ||
spec.platform = :ios, "13.0" | ||
spec.swift_version = '5.9' | ||
spec.platform = :ios, '13.0' | ||
spec.requires_arc = true | ||
|
||
spec.framework = "Foundation", "UIKit" | ||
spec.framework = 'Foundation', 'UIKit' | ||
|
||
spec.module_name = "StreamChatUI" | ||
spec.source = { :git => "https://github.com/GetStream/stream-chat-swift.git", :tag => "#{spec.version}" } | ||
spec.source_files = ["Sources/StreamChatUI/**/*.swift", "Sources/StreamNuke/**/*.swift", "Sources/StreamSwiftyGif/**/*.swift"] | ||
spec.resource_bundles = { "StreamChatUIResources" => ["Sources/StreamChatUI/Resources/**/*"] } | ||
spec.module_name = 'StreamChatUI' | ||
spec.source = { git: 'https://github.com/GetStream/stream-chat-swift.git', tag: "#{spec.version}" } | ||
spec.source_files = ['Sources/StreamChatUI/**/*.swift', 'Sources/StreamNuke/**/*.swift', | ||
'Sources/StreamSwiftyGif/**/*.swift'] | ||
spec.resource_bundles = { 'StreamChatUIResources' => ['Sources/StreamChatUI/Resources/**/*'] } | ||
|
||
spec.dependency "StreamChat", "#{spec.version}" | ||
spec.dependency 'StreamChat', "#{spec.version}" | ||
end |
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.
Replace the 26.0 runtime entry with the real iOS version.
The matrix now feeds
"iPhone 17 Pro (26.0)"
into bothsetup-ios-runtime
and the Fastlane device argument. iOS runtimes keep their own numbering (18.x for Xcode 26); there is no 26.x simulator runtime, so these jobs will never boot. Please update theios
value to the actual iOS 18.x build that ships with Xcode 26 and keepsetup_runtime
aligned.🤖 Prompt for AI Agents