Skip to content

Commit a16b3c6

Browse files
committed
[CI] Support Xcode 26
1 parent a8a729b commit a16b3c6

File tree

660 files changed

+138
-133
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

660 files changed

+138
-133
lines changed

.github/actions/xcode-cache/action.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,3 @@ runs:
1212
path: spm_cache
1313
key: ${{ env.IMAGE }}-spm-${{ hashFiles('**/Package.resolved') }}
1414
restore-keys: ${{ env.IMAGE }}-spm-
15-
- uses: mikehardy/buildcache-action@v2
16-
with:
17-
cache_key: ${{ env.IMAGE }}-buildcache-

.github/workflows/cron-checks.yml

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,29 @@ jobs:
2121
strategy:
2222
matrix:
2323
include:
24-
- ios: 18.5
25-
xcode: 16.4
26-
os: macos-15
24+
- ios: "26.1"
25+
device: "iPhone 17 Pro"
26+
setup_runtime: false
27+
- ios: "18.5"
2728
device: "iPhone 16 Pro"
2829
setup_runtime: false
29-
- ios: 17.5
30-
xcode: 15.4
31-
os: macos-14
30+
- ios: "17.5"
3231
device: "iPhone 15 Pro"
33-
setup_runtime: false
34-
- ios: 16.4
35-
xcode: 15.3 # fails on 15.4
36-
os: macos-14
32+
setup_runtime: true
33+
- ios: "16.4"
3734
device: "iPhone 14 Pro"
3835
setup_runtime: true
39-
- ios: 15.5
40-
xcode: 15.3 # fails on 15.4
41-
os: macos-14
36+
- ios: "15.5"
4237
device: "iPhone 13 Pro"
4338
setup_runtime: true
4439
fail-fast: false
45-
runs-on: ${{ matrix.os }}
40+
runs-on: macos-15
4641
env:
4742
GITHUB_EVENT: ${{ toJson(github.event) }}
4843
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
4944
STREAM_DEMO_APP_SECRET: ${{ secrets.STREAM_DEMO_APP_SECRET }}
50-
XCODE_VERSION: ${{ matrix.xcode }}
51-
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})" # For the Allure report
45+
XCODE_VERSION: "26.1.1"
46+
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})"
5247
steps:
5348
- uses: actions/[email protected]
5449
- uses: ./.github/actions/bootstrap
@@ -66,7 +61,7 @@ jobs:
6661
- name: Launch Allure TestOps
6762
run: bundle exec fastlane allure_launch cron:true
6863
- name: Run UI Tests (Debug)
69-
run: bundle exec fastlane test_e2e_mock device:"${{ matrix.device }} (${{ matrix.ios }})"
64+
run: bundle exec fastlane test_e2e_mock device:"${{ env.IOS_SIMULATOR_DEVICE }}"
7065
timeout-minutes: 120
7166
- name: Allure TestOps Upload
7267
if: success() || failure()
@@ -94,30 +89,26 @@ jobs:
9489
strategy:
9590
matrix:
9691
include:
97-
- ios: 18.5
98-
xcode: 16.4
99-
os: macos-15
92+
- ios: "26.1"
93+
device: "iPhone 17 Pro"
94+
setup_runtime: false
95+
- ios: "18.5"
10096
device: "iPhone 16 Pro"
10197
setup_runtime: false
102-
- ios: 17.5
103-
xcode: 15.4
104-
os: macos-14
98+
- ios: "17.5"
10599
device: "iPhone 15 Pro"
106-
setup_runtime: false
107-
- ios: 16.4
108-
xcode: 15.3 # fails on 15.4
109-
os: macos-14
100+
setup_runtime: true
101+
- ios: "16.4"
110102
device: "iPhone 14 Pro"
111103
setup_runtime: true
112-
- ios: 15.5
113-
xcode: 15.3 # fails on 15.4
114-
os: macos-14
104+
- ios: "15.5"
115105
device: "iPhone 13 Pro"
116106
setup_runtime: true
117107
fail-fast: false
118-
runs-on: ${{ matrix.os }}
108+
runs-on: macos-15
119109
env:
120-
XCODE_VERSION: ${{ matrix.xcode }}
110+
XCODE_VERSION: "26.1.1"
111+
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})"
121112
steps:
122113
- uses: actions/[email protected]
123114
- uses: ./.github/actions/bootstrap
@@ -131,7 +122,7 @@ jobs:
131122
version: ${{ matrix.ios }}
132123
device: ${{ matrix.device }}
133124
- name: Run LLC Tests (Debug)
134-
run: bundle exec fastlane test device:"${{ matrix.device }} (${{ matrix.ios }})" cron:true
125+
run: bundle exec fastlane test device:"${{ env.IOS_SIMULATOR_DEVICE }}" cron:true
135126
timeout-minutes: 100
136127
- name: Parse xcresult
137128
if: failure()
@@ -147,24 +138,25 @@ jobs:
147138
fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/*
148139
149140
build-old-xcode:
150-
name: Build LLC + UI (Xcode 15)
141+
name: Build LLC + UI (Old Xcode)
151142
runs-on: macos-14
152143
env:
153-
XCODE_VERSION: "15.4"
144+
XCODE_VERSION: "16.1"
154145
steps:
155146
- name: Connect Bot
156147
uses: webfactory/[email protected]
157148
with:
158149
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
159150
- uses: actions/[email protected]
151+
- uses: ./.github/actions/xcode-cache
160152
- uses: ./.github/actions/ruby-cache
161153
- name: List Xcode versions
162154
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'"
163155
- name: Build LLC
164-
run: bundle exec fastlane test device:"iPhone 8" build_for_testing:true
156+
run: bundle exec fastlane test device:"iPhone 16" build_for_testing:true
165157
timeout-minutes: 25
166158
- name: Build UI
167-
run: bundle exec fastlane test_ui device:"iPhone 8" build_for_testing:true
159+
run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true
168160
timeout-minutes: 25
169161
- name: Build XCFrameworks
170162
run: bundle exec fastlane build_xcframeworks
@@ -177,7 +169,7 @@ jobs:
177169
name: Automated Code Review
178170
runs-on: macos-14
179171
env:
180-
XCODE_VERSION: "15.4"
172+
XCODE_VERSION: "16.1"
181173
steps:
182174
- uses: actions/[email protected]
183175
- uses: ./.github/actions/bootstrap

.github/workflows/smoke-checks.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ concurrency:
2020

2121
env:
2222
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI
23-
IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.5)"
23+
IOS_SIMULATOR_DEVICE: "iPhone 17 Pro (26.1)"
2424
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2525
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}
2626

@@ -48,7 +48,7 @@ jobs:
4848
name: Automated Code Review
4949
runs-on: macos-14
5050
env:
51-
XCODE_VERSION: "15.4"
51+
XCODE_VERSION: "16.1"
5252
if: ${{ github.event.inputs.record_snapshots != 'true' }}
5353
steps:
5454
- uses: actions/[email protected]
@@ -63,21 +63,22 @@ jobs:
6363
if: startsWith(github.event.pull_request.head.ref, 'release/')
6464

6565
build-old-xcode:
66-
name: Build LLC + UI (Xcode 15)
66+
name: Build SDKs (Old Xcode)
6767
runs-on: macos-14
6868
if: ${{ github.event.inputs.record_snapshots != 'true' }}
6969
env:
70-
XCODE_VERSION: "15.4"
70+
XCODE_VERSION: "16.1"
7171
steps:
7272
- uses: actions/[email protected]
73+
- uses: ./.github/actions/xcode-cache
7374
- uses: ./.github/actions/ruby-cache
7475
- name: List Xcode versions
7576
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'"
7677
- name: Build LLC
77-
run: bundle exec fastlane test device:"iPhone 13" build_for_testing:true
78+
run: bundle exec fastlane test device:"iPhone 16" build_for_testing:true
7879
timeout-minutes: 25
7980
- name: Build UI
80-
run: bundle exec fastlane test_ui device:"iPhone 13" build_for_testing:true
81+
run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true
8182
timeout-minutes: 25
8283

8384
test-llc-debug:

.swiftformat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Stream rules
22
--header "\nCopyright © {year} Stream.io Inc. All rights reserved.\n"
3-
--swiftversion 5.6
3+
--swiftversion 5.10
44

55
# Use allow-list
66
--rules blankLinesAroundMark

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ _June 17, 2025_
255255
- Add new `Filter.isNil` to make it easier to query by nil values [#3623](https://github.com/GetStream/stream-chat-swift/pull/3623)
256256
- Add Message Reminders [#3623](https://github.com/GetStream/stream-chat-swift/pull/3623)
257257
- Add `ChatMessageController.createReminder()`
258-
- Add `ChatMessageController.updateReminder()`
258+
- Add `ChatMessageController.updateReminder()`
259259
- Add `ChatMessageController.deleteReminder()`
260260
- Add `MessageReminderListController` and `MessageReminderListQuery`
261261

@@ -392,7 +392,7 @@ _February 27, 2025_
392392
- Add `CurrentUserController`:
393393
- `deleteDraft()`
394394
- `loadDraftMessages()`
395-
- `loadMoreDraftMessages()`
395+
- `loadMoreDraftMessages()`
396396

397397
### 🐞 Fixed
398398
- Update channel's preview message when coming back to online [#3574](https://github.com/GetStream/stream-chat-swift/pull/3574)

Githubfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ export ALLURECTL_VERSION='2.16.0'
44
export XCRESULTS_VERSION='1.19.1'
55
export YEETD_VERSION='1.0'
66
export GCLOUD_VERSION='464.0.0'
7-
export MINT_VERSION='0.17.5'
87
export SONAR_VERSION='6.2.1.4610'
98
export IPSW_VERSION='3.1.592'
109
export INTERFACE_ANALYZER_VERSION='1.0.7'

Package.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:5.7
1+
// swift-tools-version:5.10
22

33
import Foundation
44
import PackageDescription
@@ -31,7 +31,10 @@ let package = Package(
3131
.target(
3232
name: "StreamChat",
3333
exclude: ["Info.plist"],
34-
resources: [.copy("Database/StreamChatModel.xcdatamodeld")]
34+
resources: [.copy("Database/StreamChatModel.xcdatamodeld")],
35+
swiftSettings: [
36+
.unsafeFlags(["-Osize"], .when(configuration: .release))
37+
]
3538
),
3639
.target(
3740
name: "StreamChatUI",

Scripts/bootstrap.sh

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ if [ "${SKIP_SWIFT_BOOTSTRAP:-}" != true ]; then
3030
puts "Install SwiftLint v${SWIFT_LINT_VERSION}"
3131
DOWNLOAD_URL="https://github.com/realm/SwiftLint/releases/download/${SWIFT_LINT_VERSION}/SwiftLint.pkg"
3232
DOWNLOAD_PATH="/tmp/SwiftLint-${SWIFT_LINT_VERSION}.pkg"
33-
curl -sL "$DOWNLOAD_URL" -o "$DOWNLOAD_PATH"
33+
wget "$DOWNLOAD_URL" -O "$DOWNLOAD_PATH"
3434
sudo installer -pkg "$DOWNLOAD_PATH" -target /
3535
swiftlint version
3636

@@ -39,7 +39,7 @@ if [ "${SKIP_SWIFT_BOOTSTRAP:-}" != true ]; then
3939
DOWNLOAD_PATH="/tmp/swiftformat-${SWIFT_FORMAT_VERSION}.zip"
4040
BIN_PATH="/usr/local/bin/swiftformat"
4141
brew uninstall swiftformat || true
42-
curl -sL "$DOWNLOAD_URL" -o "$DOWNLOAD_PATH"
42+
wget "$DOWNLOAD_URL" -O "$DOWNLOAD_PATH"
4343
unzip -o "$DOWNLOAD_PATH" -d /tmp/swiftformat-${SWIFT_FORMAT_VERSION}
4444
sudo mv /tmp/swiftformat-${SWIFT_FORMAT_VERSION}/swiftformat "$BIN_PATH"
4545
sudo chmod +x "$BIN_PATH"
@@ -50,7 +50,7 @@ if [ "${SKIP_SWIFT_BOOTSTRAP:-}" != true ]; then
5050
DOWNLOAD_PATH="/tmp/swiftgen-${SWIFT_GEN_VERSION}.zip"
5151
INSTALL_DIR="/usr/local/lib/swiftgen"
5252
BIN_PATH="/usr/local/bin/swiftgen"
53-
curl -sL "$DOWNLOAD_URL" -o "$DOWNLOAD_PATH"
53+
wget "$DOWNLOAD_URL" -O "$DOWNLOAD_PATH"
5454
sudo rm -rf "$INSTALL_DIR"
5555
sudo mkdir -p "$INSTALL_DIR"
5656
sudo unzip -o "$DOWNLOAD_PATH" -d "$INSTALL_DIR"
@@ -62,7 +62,7 @@ fi
6262
if [[ ${INSTALL_SONAR-default} == true ]]; then
6363
puts "Install sonar scanner v${SONAR_VERSION}"
6464
DOWNLOAD_URL="https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_VERSION}-macosx-x64.zip"
65-
curl -sL "${DOWNLOAD_URL}" -o ./fastlane/sonar.zip
65+
wget "${DOWNLOAD_URL}" -O ./fastlane/sonar.zip
6666
cd fastlane
6767
unzip sonar.zip
6868
rm sonar.zip
@@ -78,19 +78,19 @@ cp Scripts/DemoApp-StreamDevelopers.xcscheme StreamChat.xcodeproj/xcshareddata/x
7878
if [[ ${INSTALL_ALLURE-default} == true ]]; then
7979
puts "Install allurectl v${ALLURECTL_VERSION}"
8080
DOWNLOAD_URL="https://github.com/allure-framework/allurectl/releases/download/${ALLURECTL_VERSION}/allurectl_darwin_amd64"
81-
curl -sL "${DOWNLOAD_URL}" -o ./fastlane/allurectl
81+
wget "${DOWNLOAD_URL}" -O ./fastlane/allurectl
8282
chmod +x ./fastlane/allurectl
8383

8484
puts "Install xcresults v${XCRESULTS_VERSION}"
8585
DOWNLOAD_URL="https://github.com/eroshenkoam/xcresults/releases/download/${XCRESULTS_VERSION}/xcresults"
86-
curl -sL "${DOWNLOAD_URL}" -o ./fastlane/xcresults
86+
wget "${DOWNLOAD_URL}" -O ./fastlane/xcresults
8787
chmod +x ./fastlane/xcresults
8888
fi
8989

9090
if [[ ${INSTALL_YEETD-default} == true ]]; then
9191
PACKAGE="yeetd-normal.pkg"
9292
puts "Install yeetd v${YEETD_VERSION}"
93-
wget "https://github.com/biscuitehh/yeetd/releases/download/${YEETD_VERSION}/${PACKAGE}"
93+
wget "https://github.com/biscuitehh/yeetd/releases/download/${YEETD_VERSION}/${PACKAGE}" -O "${PACKAGE}"
9494
sudo installer -pkg ${PACKAGE} -target /
9595
puts "Running yeetd daemon"
9696
yeetd &
@@ -110,7 +110,7 @@ fi
110110
if [[ ${INSTALL_IPSW-default} == true ]]; then
111111
puts "Install ipsw v${IPSW_VERSION}"
112112
FILE="ipsw_${IPSW_VERSION}_macOS_universal.tar.gz"
113-
wget "https://github.com/blacktop/ipsw/releases/download/v${IPSW_VERSION}/${FILE}"
113+
wget "https://github.com/blacktop/ipsw/releases/download/v${IPSW_VERSION}/${FILE}" -O "${FILE}"
114114
tar -xzf "$FILE"
115115
chmod +x ipsw
116116
sudo mv ipsw /usr/local/bin/
@@ -119,7 +119,7 @@ fi
119119
if [[ ${INSTALL_INTERFACE_ANALYZER-default} == true ]]; then
120120
puts "Install interface-analyser v${INTERFACE_ANALYZER_VERSION}"
121121
FILE="interface-analyser"
122-
wget "https://github.com/GetStream/stream-module-interface-analyser/releases/download/v${INTERFACE_ANALYZER_VERSION}/${FILE}"
122+
wget "https://github.com/GetStream/stream-module-interface-analyser/releases/download/v${INTERFACE_ANALYZER_VERSION}/${FILE}" -O "${FILE}"
123123
chmod +x ${FILE}
124124
sudo mv ${FILE} /usr/local/bin/
125125
fi

StreamChat-XCFramework.podspec

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
99
spec.author = { 'getstream.io' => '[email protected]' }
1010
spec.social_media_url = 'https://getstream.io'
1111

12-
spec.swift_version = '5.7'
12+
spec.swift_version = '5.10'
1313
spec.ios.deployment_target = '13.0'
1414
spec.requires_arc = true
1515

@@ -22,4 +22,6 @@ Pod::Spec.new do |spec|
2222
spec.preserve_paths = "#{spec.module_name}.xcframework/*"
2323

2424
spec.cocoapods_version = '>= 1.11.0'
25+
26+
spec.pod_target_xcconfig = { 'SWIFT_OPTIMIZATION_LEVEL' => '-Osize' }
2527
end

StreamChat.podspec

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
99
spec.author = { 'getstream.io' => '[email protected]' }
1010
spec.social_media_url = 'https://getstream.io'
1111

12-
spec.swift_version = '5.7'
12+
spec.swift_version = '5.10'
1313
spec.ios.deployment_target = '13.0'
1414
spec.osx.deployment_target = '11.0'
1515
spec.requires_arc = true
@@ -18,7 +18,9 @@ Pod::Spec.new do |spec|
1818
spec.ios.framework = 'UIKit'
1919

2020
spec.module_name = 'StreamChat'
21-
spec.source = { git: 'https://github.com/GetStream/stream-chat-swift.git', tag: "#{spec.version}" }
21+
spec.source = { git: 'https://github.com/GetStream/stream-chat-swift.git', tag: spec.version.to_s }
2222
spec.source_files = ['Sources/StreamChat/**/*.swift']
2323
spec.resource_bundles = { 'StreamChat' => ['Sources/StreamChat/**/*.xcdatamodeld'] }
24+
25+
spec.pod_target_xcconfig = { 'SWIFT_OPTIMIZATION_LEVEL' => '-Osize' }
2426
end

0 commit comments

Comments
 (0)