diff --git a/.github/workflows/cron-checks.yml b/.github/workflows/cron-checks.yml index 294d04d6e..f16f9bbed 100644 --- a/.github/workflows/cron-checks.yml +++ b/.github/workflows/cron-checks.yml @@ -41,32 +41,27 @@ jobs: strategy: matrix: include: - - ios: 18.5 - xcode: 16.3 - os: macos-15 + # - ios: "26.0" TODO: IOS-1181 + # 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 }} + XCODE_VERSION: "26.0.1" IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})" # For the Allure report steps: - uses: actions/checkout@v4.1.1 @@ -124,30 +119,25 @@ jobs: strategy: matrix: include: - - ios: 18.5 - xcode: 16.3 - 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 - 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.0.1" steps: - uses: actions/checkout@v4.1.1 - uses: ./.github/actions/bootstrap @@ -196,17 +186,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/ssh-agent@v0.7.0 with: ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }} - uses: actions/checkout@v3.1.0 + - uses: ./.github/actions/xcode-cache - uses: ./.github/actions/ruby-cache - name: List Xcode versions run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'" @@ -229,7 +220,7 @@ jobs: name: Automated Code Review runs-on: macos-14 env: - XCODE_VERSION: "15.4" + XCODE_VERSION: "16.1" steps: - uses: actions/checkout@v4.1.1 - uses: ./.github/actions/bootstrap diff --git a/.github/workflows/smoke-checks.yml b/.github/workflows/smoke-checks.yml index ec44d4d65..37e7c1314 100644 --- a/.github/workflows/smoke-checks.yml +++ b/.github/workflows/smoke-checks.yml @@ -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.0)" GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_PR_NUM: ${{ github.event.pull_request.number }} @@ -83,6 +83,8 @@ jobs: if: ${{ github.event.inputs.record_snapshots_uikit != 'true' || github.event.inputs.record_snapshots_swiftui == 'true' }} env: GITHUB_TOKEN: ${{ secrets.CI_BOT_GITHUB_TOKEN }} # to open a PR + IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.5)" # TODO: IOS-1181 + XCODE_VERSION: "16.4" # TODO: IOS-1181 steps: - uses: actions/checkout@v4.1.1 - uses: ./.github/actions/bootstrap @@ -133,7 +135,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/checkout@v4.1.1 @@ -147,29 +149,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/ssh-agent@v0.7.0 with: ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }} - uses: actions/checkout@v3.1.0 + - 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 @@ -248,6 +251,8 @@ jobs: env: LAUNCH_ID: ${{ needs.allure_testops_launch.outputs.launch_id }} ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }} + IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.5)" # TODO: IOS-1181 + XCODE_VERSION: "16.4" # TODO: IOS-1181 strategy: matrix: batch: [0] diff --git a/Githubfile b/Githubfile index ef002290f..ad0796356 100644 --- a/Githubfile +++ b/Githubfile @@ -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' diff --git a/Package.swift b/Package.swift index 5abe14b34..3c24cacad 100644 --- a/Package.swift +++ b/Package.swift @@ -31,6 +31,9 @@ let package = Package( dependencies: [ .product(name: "SwiftProtobuf", package: "swift-protobuf"), .product(name: "StreamWebRTC", package: "stream-video-swift-webrtc") + ], + swiftSettings: [ + .unsafeFlags(["-Osize"], .when(configuration: .release)) ] ), .target( diff --git a/StreamVideo-XCFramework.podspec b/StreamVideo-XCFramework.podspec index adf9ac570..5a62f23c9 100644 --- a/StreamVideo-XCFramework.podspec +++ b/StreamVideo-XCFramework.podspec @@ -28,4 +28,12 @@ Pod::Spec.new do |spec| unzip -o Frameworks/StreamWebRTC.zip -d Frameworks/ rm Frameworks/StreamWebRTC.zip CMD + + spec.pod_target_xcconfig = { + 'SWIFT_OPTIMIZATION_LEVEL' => '-Osize' + } + + spec.user_target_xcconfig = { + 'SWIFT_OPTIMIZATION_LEVEL' => '-Osize' + } end diff --git a/StreamVideo.podspec b/StreamVideo.podspec index 3dd692ae2..225c403f3 100644 --- a/StreamVideo.podspec +++ b/StreamVideo.podspec @@ -29,4 +29,12 @@ Pod::Spec.new do |spec| unzip -o Frameworks/StreamWebRTC.zip -d Frameworks/ rm Frameworks/StreamWebRTC.zip CMD + + spec.pod_target_xcconfig = { + 'SWIFT_OPTIMIZATION_LEVEL' => '-Osize' + } + + spec.user_target_xcconfig = { + 'SWIFT_OPTIMIZATION_LEVEL' => '-Osize' + } end diff --git a/StreamVideo.xcodeproj/project.pbxproj b/StreamVideo.xcodeproj/project.pbxproj index ecc250507..80f70a67f 100644 --- a/StreamVideo.xcodeproj/project.pbxproj +++ b/StreamVideo.xcodeproj/project.pbxproj @@ -10818,6 +10818,7 @@ SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Osize"; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-dark.png b/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-dark.png index 91ebc2a02..a6f9b61ba 100644 Binary files a/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-dark.png and b/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-dark.png differ diff --git a/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-light.png b/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-light.png index 76b3eda99..9e43e731c 100644 Binary files a/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-light.png and b/StreamVideoUIKitTests/__Snapshots__/CallViewController_Tests/test_callViewController_outgoingSnapshot.default-light.png differ diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 353d43803..e8a535aa3 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -7,7 +7,7 @@ require 'net/http' import 'Sonarfile' import 'Allurefile' -xcode_version = ENV['XCODE_VERSION'] || '16.3' +xcode_version = ENV['XCODE_VERSION'] || '26.0.1' xcode_project = 'StreamVideo.xcodeproj' sdk_names = ['StreamVideo', 'StreamVideoSwiftUI', 'StreamVideoUIKit'] podspec_names = ['StreamVideo', 'StreamVideo-XCFramework', 'StreamVideoSwiftUI', 'StreamVideoSwiftUI-XCFramework', 'StreamVideoUIKit', 'StreamVideoUIKit-XCFramework'] @@ -244,7 +244,7 @@ lane :test do |options| begin scan(scan_options) rescue StandardError => e - UI.user_error!(e) unless options[:cron] + UI.user_error!(e) failed_tests = retreive_failed_tests UI.important("Re-running #{failed_tests.size} failed tests ⌛️") diff --git a/fastlane/Scanfile b/fastlane/Scanfile index 1f98751ac..e53e15035 100644 --- a/fastlane/Scanfile +++ b/fastlane/Scanfile @@ -1,16 +1,2 @@ -# For more information about this configuration visit -# https://docs.fastlane.tools/actions/scan/#scanfile - -# In general, you can use the options available -# fastlane scan --help - -devices(["iPhone 15 Pro"]) - -# Needed for Sonar -code_coverage(true) - -configuration("Test") - +configuration('Test') result_bundle(true) - -skip_slack(true)