Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 69 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,26 @@ jobs:
config: DebugV9
- scheme: iOS-ObjectiveC
config: DebugV9
# Xcode 26 configurations for testing new OS versions
- scheme: iOS-Swift
config: Debug
xcode: "26.0"
- scheme: macOS-Swift
config: Debug
xcode: "26.0"
- scheme: tvOS-Swift
config: Debug
xcode: "26.0"
- scheme: visionOS-Swift
config: Debug
xcode: "26.0"
- scheme: watchOS-Swift WatchKit App
config: Debug
xcode: "26.0"

steps:
- uses: actions/checkout@v5
- run: ./scripts/ci-select-xcode.sh 16.4
- run: ./scripts/ci-select-xcode.sh ${{ matrix.xcode || '16.4' }}
- run: make init-ci-build
- run: make xcode-ci

Expand Down Expand Up @@ -173,11 +189,27 @@ jobs:
--command build \
--device "iPhone 16" \
--configuration DebugV9

build-v9-xcode26:
name: Build SDK v9 with Xcode 26
if: github.event_name != 'pull_request' || needs.files-changed.outputs.run_build_for_prs == 'true'
needs: files-changed
runs-on: macos-15
steps:
- uses: actions/checkout@v5
- run: ./scripts/ci-select-xcode.sh 26.0
- run: |
./scripts/sentry-xcodebuild.sh \
--platform iOS \
--os 26.0 \
--command build \
--device "iPhone 16e" \
--configuration DebugV9
- name: Archiving Raw Build Logs
uses: actions/upload-artifact@v4
if: ${{ failure() || cancelled() }}
with:
name: raw-build-output-v9
name: raw-build-output-v9-xcode26
path: |
raw-build-output.log
- name: Debug Xcode environment
Expand Down Expand Up @@ -321,6 +353,39 @@ jobs:
if: ${{ failure() || cancelled() }}
run: ./scripts/ci-diagnostics.sh

check-compiling-async-safe-logs-xcode26:
name: Check compiling Async Safe Logs with Xcode 26
if: github.event_name != 'pull_request' || needs.files-changed.outputs.run_build_for_prs == 'true'
needs: files-changed
runs-on: macos-15
steps:
- uses: actions/checkout@v5

# If the SentryAsyncSafeLog doesn't contain the SENTRY_ASYNC_SAFE_LOG_LEVEL_ERROR this fails.
- name: Async Safe Log Level is Error
run: grep -c "SENTRY_ASYNC_SAFE_LOG_LEVEL SENTRY_ASYNC_SAFE_LOG_LEVEL_ERROR" Sources/Sentry/SentryAsyncSafeLog.h

- name: Set Async Safe Log Level to Debug
run: |
sed -i '' 's/#define SENTRY_ASYNC_SAFE_LOG_LEVEL SENTRY_ASYNC_SAFE_LOG_LEVEL_ERROR/#define SENTRY_ASYNC_SAFE_LOG_LEVEL SENTRY_ASYNC_SAFE_LOG_LEVEL_TRACE/' Sources/Sentry/SentryAsyncSafeLog.h
shell: bash

- run: ./scripts/ci-select-xcode.sh 26.0

- name: Build for Debug
run: |
./scripts/sentry-xcodebuild.sh \
--platform iOS \
--os 26.0 \
--ref ${{ github.ref }} \
--command build \
--device "iPhone 16e" \
--configuration Debug

- name: Debug Xcode environment
if: ${{ failure() || cancelled() }}
run: ./scripts/ci-diagnostics.sh

build-required-check:
needs:
[
Expand All @@ -329,11 +394,13 @@ jobs:
build-sample,
build-spm,
build-v9,
build-v9-xcode26,
check-debug-without-UIKit,
check-release-without-UIKit,
check-debug-with-UIKit,
check-release-with-UIKit,
check-compiling-async-safe-logs,
check-compiling-async-safe-logs-xcode26,
]
name: Build
# This is necessary since a failed/skipped dependent job would cause this job to be skipped
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,15 @@ jobs:
device: "iPhone 15"
scheme: "SentrySwiftUI"

# iOS 26 SentrySwiftUI
- name: iOS 26 SentrySwiftUI
runs-on: macos-15
platform: "iOS"
xcode: "26.0"
test-destination-os: "26.0"
device: "iPhone 16e"
scheme: "SentrySwiftUI"

# tvOS 18
- name: tvOS 18 Sentry
runs-on: macos-15
Expand All @@ -198,6 +207,39 @@ jobs:
test-destination-os: "18.5"
scheme: "Sentry"

# iOS 26
- name: iOS 26 Sentry
runs-on: macos-15
platform: "iOS"
xcode: "26.0"
test-destination-os: "26.0"
device: "iPhone 16e"
scheme: "Sentry"

# macOS 26
- name: macOS 26 Sentry
runs-on: macos-15
platform: "macOS"
xcode: "26.0"
test-destination-os: "latest"
scheme: "Sentry"

# tvOS 26
- name: tvOS 26 Sentry
runs-on: macos-15
platform: "tvOS"
xcode: "26.0"
test-destination-os: "26.0"
scheme: "Sentry"

# visionOS 26
- name: visionOS 26 Sentry
runs-on: macos-15
platform: "visionOS"
xcode: "26.0"
test-destination-os: "26.0"
scheme: "Sentry"

steps:
- uses: actions/checkout@v5
- uses: actions/download-artifact@v5
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/ui-tests-critical.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ jobs:
platform:
runs-on: macos-15
xcode: "16.4"

# As of 25th August 2025, iOS 26.0 is available on macos-15 with Xcode 26.0 beta; see
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md#installed-sdks
- name: iOS 26
platform:
runs-on: macos-15
xcode: "26.0"
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/ui-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@ jobs:
runs-on: macos-15
xcode: "16.4"
device: iPhone 16 (18.5)
- name: iOS 26
runs-on: macos-15
xcode: "26.0"
device: iPhone 16e (26.0)
with:
fastlane_command: ui_tests_ios_swift
fastlane_command_extra_arguments: device:${{matrix.device}}
Expand All @@ -113,3 +117,29 @@ jobs:
codecov_test_analytics: true
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

ui-tests-ios26-swift6:
name: Test iOS 26 Swift6 V1 # Up the version with every change to keep track of flaky tests
uses: ./.github/workflows/ui-tests-common.yml
with:
fastlane_command: ui_tests_ios_swift6
fastlane_command_extra_arguments: device:iPhone 16e (26.0)
xcode_version: 26.0
build_with_make: true
macos_version: macos-15
codecov_test_analytics: true
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

ui-tests-ios26-swiftui:
name: Test iOS 26 SwiftUI V1 # Up the version with every change to keep track of flaky tests
uses: ./.github/workflows/ui-tests-common.yml
with:
fastlane_command: ui_tests_ios_swiftui
fastlane_command_extra_arguments: device:iPhone 16e (26.0)
xcode_version: 26.0
build_with_make: true
macos_version: macos-15
codecov_test_analytics: true
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
Loading