-
Notifications
You must be signed in to change notification settings - Fork 211
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
[CI] Bump Xcode version #3509
[CI] Bump Xcode version #3509
Changes from all commits
f66fbb7
879e863
9d5a0a3
0fbb926
e688cc7
59a0d41
05c010f
9170f19
be4e0aa
85c661d
c260cff
b68f0dd
921be20
efbc0bc
67a8f78
a191e58
e35c521
814bd0b
04fb53e
96e1720
9350093
276bb63
8146d30
5b1f579
eb59714
e3b7785
642b2f1
c4d95b6
b38e199
474ce74
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 |
---|---|---|
|
@@ -41,6 +41,11 @@ jobs: | |
strategy: | ||
matrix: | ||
include: | ||
- ios: 18.1 | ||
xcode: 16.1 | ||
os: macos-15 | ||
device: "iPhone 16 Pro" | ||
setup_runtime: false | ||
- ios: 17.4 | ||
xcode: 15.4 | ||
os: macos-14 | ||
|
@@ -123,6 +128,11 @@ jobs: | |
strategy: | ||
matrix: | ||
include: | ||
- ios: 18.1 | ||
xcode: 16.1 | ||
os: macos-15 | ||
device: "iPhone 16 Pro" | ||
setup_runtime: false | ||
- ios: 17.4 | ||
xcode: 15.4 | ||
os: macos-14 | ||
|
@@ -138,16 +148,6 @@ jobs: | |
os: macos-14 | ||
device: "iPhone 13 Pro" | ||
setup_runtime: true | ||
- ios: 14.5 | ||
xcode: 14.2 | ||
os: macos-12 | ||
device: "iPhone 12 Pro" | ||
setup_runtime: true | ||
- ios: 13.7 | ||
xcode: 14.2 | ||
os: macos-12 | ||
device: "iPhone 11 Pro" | ||
setup_runtime: true | ||
fail-fast: false | ||
runs-on: ${{ matrix.os }} | ||
env: | ||
|
@@ -189,11 +189,11 @@ jobs: | |
fastlane/test_output/logs/*/Diagnostics/**/*.txt | ||
fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/* | ||
|
||
build-xcode14: | ||
name: Build LLC + UI (Xcode 14) | ||
runs-on: macos-12 | ||
build-old-xcode: | ||
name: Build LLC + UI (Xcode 15) | ||
runs-on: macos-14 | ||
env: | ||
XCODE_VERSION: "14.0.1" | ||
XCODE_VERSION: "15.0.1" | ||
steps: | ||
- name: Connect Bot | ||
uses: webfactory/[email protected] | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ on: | |
jobs: | ||
release: | ||
name: Publish new release | ||
runs-on: macos-12 | ||
runs-on: macos-15 | ||
steps: | ||
- name: Connect Bot | ||
uses: webfactory/[email protected] | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,7 +19,7 @@ concurrency: | |
|
||
env: | ||
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI | ||
IOS_SIMULATOR_DEVICE: "iPhone 15 Pro (17.4)" | ||
IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.1)" | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
GITHUB_PR_NUM: ${{ github.event.pull_request.number }} | ||
|
||
|
@@ -48,9 +48,9 @@ jobs: | |
|
||
automated-code-review: | ||
name: Automated Code Review | ||
runs-on: macos-12 | ||
runs-on: macos-14 | ||
env: | ||
XCODE_VERSION: "14.0.1" | ||
XCODE_VERSION: "15.0.1" | ||
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }} | ||
steps: | ||
- uses: actions/[email protected] | ||
|
@@ -67,12 +67,12 @@ jobs: | |
if: startsWith(github.event.pull_request.head.ref, 'release/') | ||
run: bundle exec fastlane pod_lint | ||
|
||
build-xcode14: | ||
name: Build LLC + UI (Xcode 14) | ||
runs-on: macos-12 | ||
build-old-xcode: | ||
name: Build LLC + UI (Xcode 15) | ||
runs-on: macos-14 | ||
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }} | ||
env: | ||
XCODE_VERSION: "14.0.1" | ||
XCODE_VERSION: "15.0.1" | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/ruby-cache | ||
|
@@ -87,7 +87,7 @@ jobs: | |
|
||
test-llc-debug: | ||
name: Test LLC (Debug) | ||
runs-on: macos-14 | ||
runs-on: macos-15 | ||
if: ${{ github.event.inputs.snapshots != 'true' }} | ||
needs: build-test-app-and-frameworks | ||
steps: | ||
|
@@ -136,7 +136,7 @@ jobs: | |
|
||
test-ui-debug: | ||
name: Test UI (Debug) | ||
runs-on: macos-14 | ||
runs-on: macos-15 | ||
needs: build-test-app-and-frameworks | ||
if: ${{ github.event_name != 'push' }} | ||
steps: | ||
|
@@ -152,7 +152,7 @@ jobs: | |
SKIP_BREW_BOOTSTRAP: true | ||
- name: Run UI Tests (Debug) | ||
run: bundle exec fastlane test_ui device:"${{ env.IOS_SIMULATOR_DEVICE }}" skip_build:true record:${{ github.event.inputs.snapshots }} | ||
timeout-minutes: 60 | ||
timeout-minutes: 120 | ||
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. Lovely, I do have seen this timeout taking my run down |
||
env: | ||
GITHUB_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} # to open a PR | ||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # to use github cli | ||
|
@@ -170,7 +170,7 @@ jobs: | |
|
||
allure_testops_launch: | ||
name: Launch Allure TestOps | ||
runs-on: macos-13 | ||
runs-on: macos-14 | ||
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }} | ||
needs: build-test-app-and-frameworks | ||
outputs: | ||
|
@@ -189,7 +189,7 @@ jobs: | |
|
||
test-e2e-debug: | ||
name: Test E2E UI (Debug) | ||
runs-on: macos-14 | ||
runs-on: macos-15 | ||
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }} | ||
needs: | ||
- allure_testops_launch | ||
|
@@ -216,8 +216,6 @@ jobs: | |
run: bundle exec fastlane test_e2e_mock device:"${{ env.IOS_SIMULATOR_DEVICE }}" batch:'${{ matrix.batch }}' test_without_building:true | ||
timeout-minutes: 100 | ||
env: | ||
XCODE_VERSION: "15.0.1" # the most stable pair of Xcode | ||
IOS_SIMULATOR_DEVICE: "iPhone 15 Pro (17.0)" # and iOS | ||
MATRIX_SIZE: ${{ strategy.job-total }} | ||
STREAM_DEMO_APP_SECRET: ${{ secrets.STREAM_DEMO_APP_SECRET }} | ||
- name: Allure TestOps Upload | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,7 +13,7 @@ env: | |
jobs: | ||
copyright: | ||
name: Copyright | ||
runs-on: macos-13 | ||
runs-on: macos-14 | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: ./.github/actions/ruby-cache | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,20 +5,20 @@ | |
import Foundation | ||
@testable import StreamChat | ||
|
||
public class ChatChannelController_Mock: ChatChannelController { | ||
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. Are we sure this won't break anything? @laevandus We do have customers using this. I wonder if, even with testable import this could break some customers 🤔 We should try to test this branch on SwiftUI to make sure it does not break the tests |
||
class ChatChannelController_Mock: ChatChannelController { | ||
|
||
var mockCid: ChannelId? | ||
public override var cid: ChannelId? { | ||
override var cid: ChannelId? { | ||
mockCid ?? super.cid | ||
} | ||
|
||
var mockFirstUnreadMessageId: MessageId? | ||
public override var firstUnreadMessageId: MessageId? { | ||
override var firstUnreadMessageId: MessageId? { | ||
mockFirstUnreadMessageId ?? super.firstUnreadMessageId | ||
} | ||
|
||
/// Creates a new mock instance of `ChatChannelController`. | ||
public static func mock(chatClientConfig: ChatClientConfig? = nil) -> ChatChannelController_Mock { | ||
static func mock(chatClientConfig: ChatClientConfig? = nil) -> ChatChannelController_Mock { | ||
.init( | ||
channelQuery: .init(cid: try! .init(cid: "mock:channel")), | ||
channelListQuery: nil, | ||
|
@@ -35,7 +35,7 @@ public class ChatChannelController_Mock: ChatChannelController { | |
) | ||
} | ||
|
||
public static func mock( | ||
static func mock( | ||
channelQuery: ChannelQuery, | ||
channelListQuery: ChannelListQuery?, | ||
client: ChatClient | ||
|
@@ -47,7 +47,7 @@ public class ChatChannelController_Mock: ChatChannelController { | |
) | ||
} | ||
|
||
public static func mock(client: ChatClient) -> ChatChannelController_Mock { | ||
static func mock(client: ChatClient) -> ChatChannelController_Mock { | ||
.init( | ||
channelQuery: .init(cid: try! .init(cid: "mock:channel")), | ||
channelListQuery: nil, | ||
|
@@ -56,7 +56,7 @@ public class ChatChannelController_Mock: ChatChannelController { | |
} | ||
|
||
var createNewMessageCallCount = 0 | ||
public override func createNewMessage( | ||
override func createNewMessage( | ||
messageId: MessageId? = nil, | ||
text: String, pinning: MessagePinning? = nil, | ||
isSilent: Bool = false, | ||
|
@@ -71,61 +71,61 @@ public class ChatChannelController_Mock: ChatChannelController { | |
createNewMessageCallCount += 1 | ||
} | ||
|
||
public var hasLoadedAllNextMessages_mock: Bool? = true | ||
public override var hasLoadedAllNextMessages: Bool { | ||
var hasLoadedAllNextMessages_mock: Bool? = true | ||
override var hasLoadedAllNextMessages: Bool { | ||
hasLoadedAllNextMessages_mock ?? super.hasLoadedAllNextMessages | ||
} | ||
|
||
public var hasLoadedAllPreviousMessages_mock: Bool? = true | ||
public override var hasLoadedAllPreviousMessages: Bool { | ||
var hasLoadedAllPreviousMessages_mock: Bool? = true | ||
override var hasLoadedAllPreviousMessages: Bool { | ||
hasLoadedAllPreviousMessages_mock ?? super.hasLoadedAllPreviousMessages | ||
} | ||
|
||
public var markedAsUnread_mock: Bool? = true | ||
public override var isMarkedAsUnread: Bool { | ||
var markedAsUnread_mock: Bool? = true | ||
override var isMarkedAsUnread: Bool { | ||
markedAsUnread_mock ?? super.isMarkedAsUnread | ||
} | ||
|
||
public var channel_mock: ChatChannel? | ||
override public var channel: ChatChannel? { | ||
var channel_mock: ChatChannel? | ||
override var channel: ChatChannel? { | ||
channel_mock ?? super.channel | ||
} | ||
|
||
public var channelQuery_mock: ChannelQuery? | ||
public override var channelQuery: ChannelQuery { | ||
var channelQuery_mock: ChannelQuery? | ||
override var channelQuery: ChannelQuery { | ||
channelQuery_mock ?? super.channelQuery | ||
} | ||
|
||
public var messages_mock: [ChatMessage]? | ||
override public var messages: LazyCachedMapCollection<ChatMessage> { | ||
var messages_mock: [ChatMessage]? | ||
override var messages: LazyCachedMapCollection<ChatMessage> { | ||
messages_mock.map { $0.lazyCachedMap { $0 } } ?? super.messages | ||
} | ||
|
||
public var markReadCallCount = 0 | ||
public override func markRead(completion: ((Error?) -> Void)?) { | ||
var markReadCallCount = 0 | ||
override func markRead(completion: ((Error?) -> Void)?) { | ||
markReadCallCount += 1 | ||
} | ||
|
||
public var state_mock: State? | ||
override public var state: DataController.State { | ||
var state_mock: State? | ||
override var state: DataController.State { | ||
get { state_mock ?? super.state } | ||
set { super.state = newValue } | ||
} | ||
|
||
public private(set) var synchronize_completion: ((Error?) -> Void)? | ||
override public func synchronize(_ completion: ((Error?) -> Void)? = nil) { | ||
private(set) var synchronize_completion: ((Error?) -> Void)? | ||
override func synchronize(_ completion: ((Error?) -> Void)? = nil) { | ||
synchronize_completion = completion | ||
} | ||
|
||
public var loadFirstPageCallCount = 0 | ||
public var loadFirstPage_result: Error? | ||
public override func loadFirstPage(_ completion: ((Error?) -> Void)? = nil) { | ||
var loadFirstPageCallCount = 0 | ||
var loadFirstPage_result: Error? | ||
override func loadFirstPage(_ completion: ((Error?) -> Void)? = nil) { | ||
loadFirstPageCallCount += 1 | ||
completion?(loadFirstPage_result) | ||
} | ||
|
||
public var loadPageAroundMessageIdCallCount = 0 | ||
public override func loadPageAroundMessageId( | ||
var loadPageAroundMessageIdCallCount = 0 | ||
override func loadPageAroundMessageId( | ||
_ messageId: MessageId, | ||
limit: Int? = nil, | ||
completion: ((Error?) -> Void)? = nil | ||
|
@@ -134,7 +134,7 @@ public class ChatChannelController_Mock: ChatChannelController { | |
} | ||
} | ||
|
||
public extension ChatChannelController_Mock { | ||
extension ChatChannelController_Mock { | ||
/// Simulates the initial conditions. Setting these values doesn't trigger any observer callback. | ||
func simulateInitial(channel: ChatChannel, messages: [ChatMessage], state: DataController.State) { | ||
channel_mock = channel | ||
|
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.
I was thinking why not 15.4, but I guess because App Store accepts all the Xcode 15 versions