name: ci on: push: branches: - master - next pull_request: branches: - '*' jobs: build: runs-on: ${{ matrix.runs-on }} env: DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer strategy: fail-fast: false matrix: include: - swift: "5" xcode: "16.2" runs-on: macos-15 - swift: "5.10" xcode: "15.4" runs-on: macos-14 - swift: "5.9" xcode: "15.2" runs-on: macos-13 - swift: "5.8" xcode: "14.3.1" runs-on: macos-13 steps: - uses: actions/checkout@v4 - name: Building in Swift ${{ matrix.swift }} run: xcodebuild -scheme FloatingPanel SWIFT_VERSION=${{ matrix.swift }} clean build test: runs-on: ${{ matrix.runs-on }} env: DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer strategy: fail-fast: false matrix: include: - os: "18.2" xcode: "16.2" sim: "iPhone 16 Pro" parallel: NO # Stop random test job failures runs-on: macos-15 - os: "17.5" xcode: "15.4" sim: "iPhone 15 Pro" parallel: NO # Stop random test job failures runs-on: macos-14 - os: "16.4" xcode: "14.3.1" sim: "iPhone 14 Pro" parallel: NO # Stop random test job failures runs-on: macos-13 steps: - uses: actions/checkout@v4 - name: Testing in iOS ${{ matrix.os }} run: | xcodebuild clean test \ -workspace FloatingPanel.xcworkspace \ -scheme FloatingPanel \ -destination 'platform=iOS Simulator,OS=${{ matrix.os }},name=${{ matrix.sim }}' \ -parallel-testing-enabled '${{ matrix.parallel }}' timeout-minutes: 20 example: runs-on: macos-15 env: DEVELOPER_DIR: /Applications/Xcode_16.2.app/Contents/Developer strategy: fail-fast: false matrix: include: - example: "Maps" - example: "Maps-SwiftUI" - example: "Stocks" - example: "Samples" steps: - uses: actions/checkout@v4 - name: Building ${{ matrix.example }} # Need to use iphonesimulator18.1 because randomly 18.2 isn't available. run: | xcodebuild clean build \ -workspace FloatingPanel.xcworkspace \ -scheme ${{ matrix.example }} \ -sdk iphonesimulator swiftpm: runs-on: macos-15 env: DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer strategy: fail-fast: false matrix: xcode: ["16.2", "15.4"] platform: [iphoneos, iphonesimulator] arch: [x86_64, arm64] exclude: - platform: iphoneos arch: x86_64 include: # 18.2 - platform: iphoneos xcode: "16.2" sys: "ios18.2" - platform: iphonesimulator xcode: "16.2" sys: "ios18.2-simulator" # 17.2 - platform: iphoneos xcode: "15.4" sys: "ios17.2" - platform: iphonesimulator xcode: "15.4" sys: "ios17.2-simulator" steps: - uses: actions/checkout@v4 - name: "Swift Package Manager build" run: | xcrun swift build \ --sdk "$(xcrun --sdk ${{ matrix.platform }} --show-sdk-path)" \ -Xswiftc "-target" -Xswiftc "${{ matrix.arch }}-apple-${{ matrix.sys }}" swiftpm_old: runs-on: ${{ matrix.runs-on }} env: DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer strategy: fail-fast: false matrix: include: # 16.4 - target: "x86_64-apple-ios16.4-simulator" xcode: "14.3.1" runs-on: macos-13 - target: "arm64-apple-ios16.4-simulator" xcode: "14.3.1" runs-on: macos-13 steps: - uses: actions/checkout@v4 - name: "Swift Package Manager build" run: | swift build \ -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" \ -Xswiftc "-target" -Xswiftc "${{ matrix.target }}" cocoapods: runs-on: macos-15 env: DEVELOPER_DIR: /Applications/Xcode_16.2.app/Contents/Developer steps: - uses: actions/checkout@v4 - name: "CocoaPods: pod lib lint" run: pod lib lint --allow-warnings --verbose - name: "CocoaPods: pod spec lint" run: pod spec lint --allow-warnings --verbose