Swift 6 #6697
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: "AdvancedOperation CI" | |
on: | |
schedule: | |
- cron: '0 0 * * 2' # Run every Tuesday | |
push: | |
branches: | |
- main | |
- develop | |
pull_request: | |
branches: | |
- main | |
- develop | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
info: | |
name: Show macOS and Xcode versions | |
runs-on: macos-15 | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer | |
steps: | |
- name: stats | |
run: | | |
sw_vers | |
xcodebuild -version | |
xcodebuild -showsdks | |
xcrun simctl list | |
brew -v | |
brew info swiftlint | |
macOS: | |
name: Test macOS | |
runs-on: macos-15 | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer | |
steps: | |
- uses: actions/checkout@v4 | |
- name: macOS | |
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "platform=macOS" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult' | |
iOS: | |
name: Test iOS | |
runs-on: macos-15 | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer | |
strategy: | |
matrix: | |
destination: ["OS=18.0,name=iPhone 16 Pro"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: iOS - ${{ matrix.destination }} | |
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult' | |
- name: Upload tests report | |
if: ${{ always() }} # to run it only if the previous step fails use ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: iOS tests report | |
path: ~/Downloads/Report | |
visionOS: | |
name: Test visionOS | |
runs-on: macos-15 | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer | |
strategy: | |
matrix: | |
destination: ["OS=2.0,name=Apple Vision Pro"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: visionOS - ${{ matrix.destination }} | |
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult' | |
- name: Upload tests report | |
if: ${{ always() }} # to run it only if the previous step fails use ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: visionOS tests report | |
path: ~/Downloads/Report | |
tvOS: | |
name: Test tvOS | |
runs-on: macos-15 | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer | |
strategy: | |
matrix: | |
destination: ["OS=18.0,name=Apple TV"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: tvOS - ${{ matrix.destination }} | |
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult' | |
- name: Upload tests report | |
if: ${{ always() }} # to run it only if the previous step fails use ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tvOS tests report | |
path: ~/Downloads/Report | |
watchOS: | |
name: Test watchOS | |
runs-on: macos-15 | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer | |
strategy: | |
matrix: | |
destination: ["OS=11.0,name=Apple Watch Series 10 (46mm)"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: watchOS - ${{ matrix.destination }} | |
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult' | |
- name: Upload tests report | |
if: ${{ always() }} # to run it only if the previous step fails use ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: watchOS tests report | |
path: ~/Downloads/Report | |
SPM: | |
name: Test SPM Integration | |
runs-on: macos-15 | |
env: | |
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer | |
steps: | |
- uses: actions/checkout@v4 | |
- name: SPM Test | |
run: | | |
swift --version | |
swift test | |
# lint: | |
# name: Swift Lint | |
# runs-on: macos-15 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Run SwiftLint | |
# run: | | |
# swift --version | |
# swiftlint --reporter github-actions-logging |