Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
66 changes: 29 additions & 37 deletions .github/workflows/cron-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,33 +41,28 @@ jobs:
strategy:
matrix:
include:
- ios: 18.5
xcode: 16.3
os: macos-15
- ios: "26.1"
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
os: macos-14
device: "iPhone 14"
setup_runtime: true
- ios: 15.5
xcode: 15.4
os: macos-14
- ios: "16.4"
device: "iPhone 14 Pro"
setup_runtime: true
- 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 }}
XCODE_VERSION: ${{ matrix.xcode }}
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})" # For the Allure report
XCODE_VERSION: "26.1.1"
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})"
steps:
- uses: actions/[email protected]
- uses: actions/download-artifact@v4
Expand All @@ -90,7 +85,7 @@ jobs:
- name: Launch Allure TestOps
run: bundle exec fastlane allure_launch cron:true
- name: Run UI Tests (Debug)
run: bundle exec fastlane test_e2e device:"${{ matrix.device }} (${{ matrix.ios }})" cron:true test_without_building:true
run: bundle exec fastlane test_e2e device:"${{ env.IOS_SIMULATOR_DEVICE }}" cron:true test_without_building:true
timeout-minutes: 90
env:
STREAM_SDK_TEST_APP: ${{ secrets.STREAM_SDK_TEST_APP }}
Expand Down Expand Up @@ -124,30 +119,26 @@ jobs:
strategy:
matrix:
include:
- ios: 18.5
xcode: 16.3
os: macos-15
- ios: "26.1"
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
os: macos-14
setup_runtime: true
- ios: "16.4"
device: "iPhone 14 Pro"
setup_runtime: true
- ios: 15.5
xcode: 15.3
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.1.1"
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})"
steps:
- uses: actions/[email protected]
- uses: ./.github/actions/bootstrap
Expand All @@ -161,7 +152,7 @@ jobs:
version: ${{ matrix.ios }}
device: ${{ matrix.device }}
- name: Run LLC Tests (Debug)
run: bundle exec fastlane test device:"${{ matrix.device }} (${{ matrix.ios }})" cron:true
run: bundle exec fastlane test device:"${{ env.IOS_SIMULATOR_DEVICE }}" cron:true
timeout-minutes: 60
- name: Parse xcresult
if: failure()
Expand Down Expand Up @@ -196,17 +187,18 @@ jobs:
run: bundle exec fastlane build_docs_test

build-old-xcode:
name: Build SDKs (Xcode 15)
name: Build SDKs (Old Xcode)
runs-on: macos-14
if: ${{ github.event_name != 'push' && github.event.inputs.snapshots != 'true' }}
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'"
Expand All @@ -229,7 +221,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
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/smoke-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,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.1)"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}

Expand Down Expand Up @@ -133,7 +133,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_swiftui != 'true' && github.event.inputs.record_snapshots_uikit != 'true' }}
steps:
- uses: actions/[email protected]
Expand All @@ -147,29 +147,30 @@ jobs:
- run: bundle exec fastlane pod_lint
if: startsWith(github.event.pull_request.head.ref, 'release/')

build-xcode15:
name: Build SDKs (Xcode 15)
build-old-xcode:
name: Build SDKs (Old Xcode)
runs-on: macos-14
needs: test-llc-debug
if: ${{ github.event.inputs.record_snapshots_swiftui != 'true' && github.event.inputs.record_snapshots_uikit != 'true' }}
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 15" build_for_testing:true
run: bundle exec fastlane test device:"iPhone 16" build_for_testing:true
timeout-minutes: 25
- name: Build SwiftUI
run: bundle exec fastlane test_swiftui device:"iPhone 15" build_for_testing:true
run: bundle exec fastlane test_swiftui device:"iPhone 16" build_for_testing:true
- name: Build UIKit
run: bundle exec fastlane test_uikit device:"iPhone 15" build_for_testing:true
run: bundle exec fastlane test_uikit device:"iPhone 16" build_for_testing:true
timeout-minutes: 25
- name: Build XCFrameworks
run: bundle exec fastlane build_xcframeworks
Expand Down
2 changes: 1 addition & 1 deletion .swiftformat
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Stream rules
--header "\nCopyright © {year} Stream.io Inc. All rights reserved.\n"
--swiftversion 5.9
--swiftversion 5.10

# Use allow-list
--rules blankLinesAroundMark
Expand Down
1 change: 0 additions & 1 deletion Githubfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ export XCRESULTS_VERSION='1.19.1'
export STREAM_VIDEO_BUDDY_VERSION='1.6.23'
export PLAYWRIGHT_VERSION='1.41.2'
export YEETD_VERSION='1.0'
export MINT_VERSION='0.17.5'
export SONAR_VERSION='6.2.1.4610'
export IPSW_VERSION='3.1.592'
export INTERFACE_ANALYZER_VERSION='1.0.7'
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version:5.9
// swift-tools-version:5.10

import Foundation
import PackageDescription
Expand Down
12 changes: 6 additions & 6 deletions Scripts/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ if [ "${SKIP_SWIFT_BOOTSTRAP:-}" != true ]; then
puts "Install SwiftLint v${SWIFT_LINT_VERSION}"
DOWNLOAD_URL="https://github.com/realm/SwiftLint/releases/download/${SWIFT_LINT_VERSION}/SwiftLint.pkg"
DOWNLOAD_PATH="/tmp/SwiftLint-${SWIFT_LINT_VERSION}.pkg"
curl -sL "$DOWNLOAD_URL" -o "$DOWNLOAD_PATH"
wget "$DOWNLOAD_URL" -O "$DOWNLOAD_PATH"
sudo installer -pkg "$DOWNLOAD_PATH" -target /
swiftlint version

Expand All @@ -39,7 +39,7 @@ if [ "${SKIP_SWIFT_BOOTSTRAP:-}" != true ]; then
DOWNLOAD_PATH="/tmp/swiftformat-${SWIFT_FORMAT_VERSION}.zip"
BIN_PATH="/usr/local/bin/swiftformat"
brew uninstall swiftformat || true
curl -sL "$DOWNLOAD_URL" -o "$DOWNLOAD_PATH"
wget "$DOWNLOAD_URL" -O "$DOWNLOAD_PATH"
unzip -o "$DOWNLOAD_PATH" -d /tmp/swiftformat-${SWIFT_FORMAT_VERSION}
sudo mv /tmp/swiftformat-${SWIFT_FORMAT_VERSION}/swiftformat "$BIN_PATH"
sudo chmod +x "$BIN_PATH"
Expand All @@ -50,7 +50,7 @@ if [ "${SKIP_SWIFT_BOOTSTRAP:-}" != true ]; then
DOWNLOAD_PATH="/tmp/swiftgen-${SWIFT_GEN_VERSION}.zip"
INSTALL_DIR="/usr/local/lib/swiftgen"
BIN_PATH="/usr/local/bin/swiftgen"
curl -sL "$DOWNLOAD_URL" -o "$DOWNLOAD_PATH"
wget "$DOWNLOAD_URL" -O "$DOWNLOAD_PATH"
sudo rm -rf "$INSTALL_DIR"
sudo mkdir -p "$INSTALL_DIR"
sudo unzip -o "$DOWNLOAD_PATH" -d "$INSTALL_DIR"
Expand All @@ -62,7 +62,7 @@ fi
if [[ ${INSTALL_SONAR-default} == true ]]; then
puts "Install sonar scanner v${SONAR_VERSION}"
DOWNLOAD_URL="https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_VERSION}-macosx-x64.zip"
curl -sL "${DOWNLOAD_URL}" -o ./fastlane/sonar.zip
wget "${DOWNLOAD_URL}" -O ./fastlane/sonar.zip
cd fastlane
unzip sonar.zip
rm sonar.zip
Expand All @@ -74,12 +74,12 @@ fi
if [[ ${INSTALL_ALLURE-default} == true ]]; then
puts "Install allurectl v${ALLURECTL_VERSION}"
DOWNLOAD_URL="https://github.com/allure-framework/allurectl/releases/download/${ALLURECTL_VERSION}/allurectl_darwin_amd64"
curl -sL "${DOWNLOAD_URL}" -o ./fastlane/allurectl
wget "${DOWNLOAD_URL}" -O ./fastlane/allurectl
chmod +x ./fastlane/allurectl

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

Expand Down
2 changes: 1 addition & 1 deletion StreamVideo-XCFramework.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
spec.author = { 'getstream.io' => '[email protected]' }
spec.social_media_url = 'https://getstream.io'

spec.swift_version = '5.9'
spec.swift_version = '5.10'
spec.platform = :ios, '13.0'
spec.requires_arc = true

Expand Down
2 changes: 1 addition & 1 deletion StreamVideo.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
spec.author = { 'getstream.io' => '[email protected]' }
spec.social_media_url = 'https://getstream.io'

spec.swift_version = '5.9'
spec.swift_version = '5.10'
spec.platform = :ios, '13.0'
spec.requires_arc = true

Expand Down
4 changes: 2 additions & 2 deletions StreamVideoSwiftUI-XCFramework.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
spec.author = { 'getstream.io' => '[email protected]' }
spec.social_media_url = 'https://getstream.io'

spec.swift_version = '5.9'
spec.swift_version = '5.10'
spec.platform = :ios, '13.0'
spec.requires_arc = true

Expand All @@ -20,5 +20,5 @@ Pod::Spec.new do |spec|
spec.vendored_frameworks = "#{spec.module_name}.xcframework"
spec.preserve_paths = "#{spec.module_name}.xcframework/*"

spec.dependency('StreamVideo-XCFramework', "#{spec.version}")
spec.dependency('StreamVideo-XCFramework', spec.version.to_s)
end
4 changes: 2 additions & 2 deletions StreamVideoSwiftUI.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
spec.author = { 'getstream.io' => '[email protected]' }
spec.social_media_url = 'https://getstream.io'

spec.swift_version = '5.9'
spec.swift_version = '5.10'
spec.platform = :ios, '13.0'
spec.requires_arc = true

Expand All @@ -20,5 +20,5 @@ Pod::Spec.new do |spec|
spec.exclude_files = ["Sources/#{spec.name}/**/*_Tests.swift", "Sources/#{spec.name}/**/*_Mock.swift"]
spec.resource_bundles = { spec.name => ["Sources/#{spec.name}/Resources/**/*"] }

spec.dependency('StreamVideo', "#{spec.version}")
spec.dependency('StreamVideo', spec.version.to_s)
end
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
6 changes: 3 additions & 3 deletions StreamVideoUIKit-XCFramework.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
spec.author = { 'getstream.io' => '[email protected]' }
spec.social_media_url = 'https://getstream.io'

spec.swift_version = '5.9'
spec.swift_version = '5.10'
spec.platform = :ios, '13.0'
spec.requires_arc = true

Expand All @@ -20,6 +20,6 @@ Pod::Spec.new do |spec|
spec.vendored_frameworks = "#{spec.module_name}.xcframework"
spec.preserve_paths = "#{spec.module_name}.xcframework/*"

spec.dependency('StreamVideo-XCFramework', "#{spec.version}")
spec.dependency('StreamVideoSwiftUI-XCFramework', "#{spec.version}")
spec.dependency('StreamVideo-XCFramework', spec.version.to_s)
spec.dependency('StreamVideoSwiftUI-XCFramework', spec.version.to_s)
end
6 changes: 3 additions & 3 deletions StreamVideoUIKit.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Pod::Spec.new do |spec|
spec.author = { 'getstream.io' => '[email protected]' }
spec.social_media_url = 'https://getstream.io'

spec.swift_version = '5.9'
spec.swift_version = '5.10'
spec.platform = :ios, '13.0'
spec.requires_arc = true

Expand All @@ -19,6 +19,6 @@ Pod::Spec.new do |spec|
spec.source_files = ["Sources/#{spec.name}/**/*.swift"]
spec.exclude_files = ["Sources/#{spec.name}/**/*_Tests.swift", "Sources/#{spec.name}/**/*_Mock.swift"]

spec.dependency('StreamVideo', "#{spec.version}")
spec.dependency('StreamVideoSwiftUI', "#{spec.version}")
spec.dependency('StreamVideo', spec.version.to_s)
spec.dependency('StreamVideoSwiftUI', spec.version.to_s)
end
6 changes: 2 additions & 4 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ require 'net/http'
import 'Sonarfile'
import 'Allurefile'

xcode_version = ENV['XCODE_VERSION'] || '16.3'
xcode_version = ENV['XCODE_VERSION'] || '26.1.1'
xcode_project = 'StreamVideo.xcodeproj'
sdk_names = ['StreamVideo', 'StreamVideoSwiftUI', 'StreamVideoUIKit']
podspec_names = ['StreamVideo', 'StreamVideo-XCFramework', 'StreamVideoSwiftUI', 'StreamVideoSwiftUI-XCFramework', 'StreamVideoUIKit', 'StreamVideoUIKit-XCFramework']
Expand Down Expand Up @@ -244,9 +244,7 @@ lane :test do |options|

begin
scan(scan_options)
rescue StandardError => e
UI.user_error!(e) unless options[:cron]

rescue StandardError => _e
failed_tests = retreive_failed_tests
UI.important("Re-running #{failed_tests.size} failed tests ⌛️")
scan(scan_options.merge(only_testing: failed_tests))
Expand Down
Loading