From 06504e79e0c901cdb7c9a84028cc9b9ae415ca66 Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Fri, 17 Apr 2026 13:14:37 +1000 Subject: [PATCH 1/9] swift compiler ver 5.3 does not support .iOS(.v15) --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index a13cc93c..65386a42 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.3 +// swift-tools-version:5.5 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription From 2f8a30efc6055c25a99924189574b430a1358df4 Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Fri, 17 Apr 2026 12:58:23 +1000 Subject: [PATCH 2/9] add sideloaded subtitles test target --- Package.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Package.swift b/Package.swift index 65386a42..a1e5b4a2 100644 --- a/Package.swift +++ b/Package.swift @@ -85,6 +85,13 @@ let package = Package( "THEOplayerConnectorUplynk" ], path: "Code/Uplynk/Tests" + ), + .testTarget( + name: "THEOplayerConnectorSideloadedSubtitleTests", + dependencies: [ + "THEOplayerConnectorSideloadedSubtitle" + ], + path: "Code/Sideloaded-TextTracks/Tests/THEOplayerConnectorSideloadedSubtitleTests" ) ] ) From c68d928ac371471322ea1f65394ed9bf9813a59d Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Fri, 17 Apr 2026 12:58:41 +1000 Subject: [PATCH 3/9] introduce smoke test pipeline --- .github/workflows/smoke-tests.yml | 80 +++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/smoke-tests.yml diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml new file mode 100644 index 00000000..da792811 --- /dev/null +++ b/.github/workflows/smoke-tests.yml @@ -0,0 +1,80 @@ +name: Smoke Tests (PR) + +on: + pull_request: + types: [opened, synchronize, reopened] + push: + branches: [main] + workflow_dispatch: + +concurrency: + group: smoke-tests-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +run-name: Running Smoke Tests + +jobs: + build-and-test: + runs-on: macos-14 + + env: + DESTINATION: 'generic/platform=iOS Simulator' + # Connectors to build — Yospace excluded (requires proprietary YOAdManagement SDK) + BUILD_SCHEMES: >- + THEOplayerConnectorUtilities + THEOplayerConnectorConviva + THEOplayerConnectorNielsen + THEOplayerConnectorSideloadedSubtitle + THEOplayerConnectorUplynk + # Test schemes to run + TEST_SCHEMES: >- + THEOplayerConnectorUplynkTests + + steps: + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '16.2.0' + + - name: Log environment + run: | + echo "macOS:" && sw_vers + echo "Xcode:" && xcodebuild -version + echo "Swift:" && swift --version + + - name: Check out repository + uses: actions/checkout@v4 + + - name: Resolve SPM dependencies + run: | + xcodebuild -resolvePackageDependencies \ + -scheme THEOplayerConnectorUtilities \ + -destination "$DESTINATION" + + - name: Build connectors + run: | + set -euo pipefail + for scheme in $BUILD_SCHEMES; do + echo "----------------------------------------" + echo "Building: $scheme" + echo "----------------------------------------" + xcodebuild build \ + -scheme "$scheme" \ + -destination "$DESTINATION" \ + -skipPackagePluginValidation \ + | xcpretty + done + + - name: Run tests + run: | + set -euo pipefail + SIM_DEST='platform=iOS Simulator,name=iPhone 16' + for scheme in $TEST_SCHEMES; do + echo "----------------------------------------" + echo "Testing: $scheme" + echo "----------------------------------------" + xcodebuild test \ + -scheme "$scheme" \ + -destination "$SIM_DEST" \ + -skipPackagePluginValidation \ + | xcpretty + done From 53e2005e747285f4a97931da7c5ef7134e00fcbf Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Fri, 17 Apr 2026 13:06:56 +1000 Subject: [PATCH 4/9] fix failing test compilation for uplynk --- Code/Uplynk/Tests/Mocks/MockAdBreak.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Uplynk/Tests/Mocks/MockAdBreak.swift b/Code/Uplynk/Tests/Mocks/MockAdBreak.swift index 86738737..c4e51bf0 100644 --- a/Code/Uplynk/Tests/Mocks/MockAdBreak.swift +++ b/Code/Uplynk/Tests/Mocks/MockAdBreak.swift @@ -20,7 +20,7 @@ struct MockAdBreak: AdBreak { struct MockAd: Ad { let isSlate = false - var adBreak: AdBreak = MockAdBreak() + var adBreak: AdBreak? = MockAdBreak() var companions: [CompanionAd] = [] var type: String = "" var id: String? From a4c39c3551ccc2d5682f57b25ef8948ec10d2cff Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Fri, 17 Apr 2026 15:12:27 +1000 Subject: [PATCH 5/9] rename pipeline --- .github/workflows/{smoke-tests.yml => build-and-test.yml} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename .github/workflows/{smoke-tests.yml => build-and-test.yml} (95%) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/build-and-test.yml similarity index 95% rename from .github/workflows/smoke-tests.yml rename to .github/workflows/build-and-test.yml index da792811..9aab23a9 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/build-and-test.yml @@ -1,4 +1,4 @@ -name: Smoke Tests (PR) +name: Build and Test (PR) on: pull_request: @@ -8,10 +8,10 @@ on: workflow_dispatch: concurrency: - group: smoke-tests-${{ github.head_ref || github.ref }} + group: build-and-test-${{ github.head_ref || github.ref }} cancel-in-progress: true -run-name: Running Smoke Tests +run-name: Build and Test jobs: build-and-test: From d53b6b1873055b123c42efa20d777bdc49525ed4 Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Fri, 17 Apr 2026 15:25:58 +1000 Subject: [PATCH 6/9] Revert "add sideloaded subtitles test target" This reverts commit 44108bf9645a3c36c9362810981f921ddc49534a. --- Package.swift | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Package.swift b/Package.swift index a1e5b4a2..65386a42 100644 --- a/Package.swift +++ b/Package.swift @@ -85,13 +85,6 @@ let package = Package( "THEOplayerConnectorUplynk" ], path: "Code/Uplynk/Tests" - ), - .testTarget( - name: "THEOplayerConnectorSideloadedSubtitleTests", - dependencies: [ - "THEOplayerConnectorSideloadedSubtitle" - ], - path: "Code/Sideloaded-TextTracks/Tests/THEOplayerConnectorSideloadedSubtitleTests" ) ] ) From adafc85e8bad651d93edefd3c16719ce3449a5b5 Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Mon, 20 Apr 2026 09:00:00 +1000 Subject: [PATCH 7/9] remove unnecessary run-name --- .github/workflows/build-and-test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 9aab23a9..b384981f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -11,8 +11,6 @@ concurrency: group: build-and-test-${{ github.head_ref || github.ref }} cancel-in-progress: true -run-name: Build and Test - jobs: build-and-test: runs-on: macos-14 From f2cce429e867da097b8284f63e1c038ad27360d3 Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Mon, 20 Apr 2026 09:09:42 +1000 Subject: [PATCH 8/9] bump macos & xcode to 26 --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index b384981f..06099326 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -13,7 +13,7 @@ concurrency: jobs: build-and-test: - runs-on: macos-14 + runs-on: macos-26 env: DESTINATION: 'generic/platform=iOS Simulator' @@ -31,7 +31,7 @@ jobs: steps: - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '16.2.0' + xcode-version: '26.3.0' - name: Log environment run: | From 3a70de577ef123db5758bcd31d4357dd7abe3fee Mon Sep 17 00:00:00 2001 From: Yousif Khalid Date: Mon, 20 Apr 2026 09:17:00 +1000 Subject: [PATCH 9/9] use newer simulator version due to bump --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 06099326..10ee148d 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -65,7 +65,7 @@ jobs: - name: Run tests run: | set -euo pipefail - SIM_DEST='platform=iOS Simulator,name=iPhone 16' + SIM_DEST='platform=iOS Simulator,name=iPhone 17' for scheme in $TEST_SCHEMES; do echo "----------------------------------------" echo "Testing: $scheme"