Massive project reorganization and thread-safety updates for Swift 6. #475
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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-latest-large, ubuntu-latest] | |
swift_version: ["5.10", "6.0"] | |
exclude: | |
- os: ubuntu-latest | |
swift_version: "6.0" | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_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-latest-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-latest-large | |
- destination: "platform=iOS Simulator,OS=17.5,name=iPhone 15 Pro Max" | |
xcode_version: "16.0" | |
os: macos-latest-large | |
- destination: "platform=tvOS Simulator,OS=17.5,name=Apple TV" | |
xcode_version: "16.0" | |
os: macos-latest-large | |
- destination: "platform=visionOS Simulator,OS=1.2,name=Apple Vision Pro" | |
xcode_version: "15.4" | |
os: macos-latest-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=10.5,name=Apple Watch Series 7 (45mm)" | |
xcode_version: "16.0" | |
os: macos-latest-large | |
- destination: "platform=macOS,name=My Mac" | |
xcode_version: "16.0" | |
os: macos-latest-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 |