Skip to content

Massive project reorganization and thread-safety updates for Swift 6. #480

Massive project reorganization and thread-safety updates for Swift 6.

Massive project reorganization and thread-safety updates for Swift 6. #480

Workflow file for this run

name: Tests
on:
push:
paths:
- '.github/workflows/tests.yaml'
- 'Package.swift'
- 'Sources/**/*.swift'
- 'Samples/**/*.swift'
- 'Tests/**/*.swift'
branches:
- master
pull_request:
branches:
- master
paths:
- '.github/workflows/tests.yaml'
- 'Package.swift'
- 'Sources/**/*.swift'
- 'Samples/**/*.swift'
- 'Tests/**/*.swift'
env:
NSUnbufferedIO: YES
jobs:
SwiftBuild:
name: Swift Unit Tests
strategy:
matrix:
os: [macos-15-large, ubuntu-latest]
swift_version: ["5.10", "6.0"]
exclude:
- os: ubuntu-latest
swift_version: "6.0"
env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.swift_version == '5.10' && '15.4' || '16.0' }}.app/Contents/Developer
runs-on: ${{ matrix.os }}
timeout-minutes: 10
steps:
- uses: SwiftyLab/setup-swift@v1
with:
swift-version: ${{ matrix.swift_version }}
- name: Get swift version
run: swift --version
- uses: actions/checkout@master
- name: Build
run: swift build --build-tests
- name: Test
run: swift test --parallel
Cocoapods:
name: CocoaPods Build
env:
DEVELOPER_DIR: /Applications/Xcode_16.0.app/Contents/Developer
runs-on: macos-15-xlarge # Running on xlarge to use arm64 chipset
timeout-minutes: 10
needs:
- SwiftBuild
steps:
- uses: actions/checkout@master
- name: OktaAuthFoundation.podspec
run: pod lib lint --allow-warnings OktaAuthFoundation.podspec
# TODO: Enable dependent podspec linting once unreleased local spec version checking is fixed.
#- name: OktaOAuth2.podspec
# run: pod lib lint --allow-warnings OktaOAuth2.podspec
#- name: OktaDirectAuth.podspec
# run: pod lib lint --allow-warnings OktaDirectAuth.podspec
#- name: OktaWebAuthenticationUI.podspec
# run: pod lib lint --allow-warnings OktaWebAuthenticationUI.podspec
XcodeBuild:
name: Xcode Unit Tests
strategy:
matrix:
include:
- destination: "platform=iOS Simulator,OS=16.4,name=iPhone 14 Pro Max"
xcode_version: "15.4"
os: macos-14-large
- destination: "platform=iOS Simulator,OS=18.1,name=iPhone 16 Pro Max"
xcode_version: "16.0"
os: macos-15-large
- destination: "platform=tvOS Simulator,OS=18.1,name=Apple TV"
xcode_version: "16.0"
os: macos-15-large
- destination: "platform=visionOS Simulator,OS=1.2,name=Apple Vision Pro"
xcode_version: "15.4"
os: macos-14-xlarge
- destination: "platform=visionOS Simulator,OS=2.0,name=Apple Vision Pro"
xcode_version: "16.0"
os: macos-15-xlarge
- destination: "platform=watchOS Simulator,OS=11.1,name=Apple Watch Series 10 (46mm)"
xcode_version: "16.0"
os: macos-15-large
- destination: "platform=macOS,name=My Mac"
xcode_version: "16.0"
os: macos-15-large
runs-on: ${{ matrix.os }}
env:
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode_version }}.app/Contents/Developer
timeout-minutes: 25
steps:
- uses: actions/checkout@master
- name: Build AuthFoundation
run: |
set -o pipefail
xcodebuild build \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme AuthFoundation \
-destination "${{ matrix.destination }}" 2>&1
- name: Test AuthFoundation
run: |
set -o pipefail && xcodebuild test \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme AuthFoundation \
-destination "${{ matrix.destination }}" 2>&1
- name: Build OktaDirectAuth
run: |
set -o pipefail && xcodebuild build \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme OktaDirectAuth \
-destination "${{ matrix.destination }}" 2>&1
- name: Test OktaDirectAuth
run: |
set -o pipefail && xcodebuild test \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme OktaDirectAuth \
-destination "${{ matrix.destination }}" 2>&1
- name: Build OktaOAuth2
run: |
set -o pipefail && xcodebuild build \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme OktaOAuth2 \
-destination "${{ matrix.destination }}" 2>&1
- name: Test OktaOAuth2
run: |
set -o pipefail && xcodebuild test \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme OktaOAuth2 \
-destination "${{ matrix.destination }}" 2>&1
- name: Build WebAuthenticationUI
if: "!contains(matrix.destination, 'tvOS') && !contains(matrix.destination, 'watchOS')"
run: |
set -o pipefail && xcodebuild build \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme WebAuthenticationUI \
-destination "${{ matrix.destination }}" 2>&1
- name: Test WebAuthenticationUI
if: "!contains(matrix.destination, 'tvOS') && !contains(matrix.destination, 'watchOS')"
run: |
set -o pipefail && xcodebuild test \
-derivedDataPath ../Build/DerivedData \
-clonedSourcePackagesDirPath ../Build/ClonedSources \
-scheme WebAuthenticationUI \
-destination "${{ matrix.destination }}" 2>&1