163 lines
4.6 KiB
YAML
163 lines
4.6 KiB
YAML
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<DVTBuildVersion 22C146> 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
|