Skip to content

Swift 6

Swift 6 #6704

Workflow file for this run

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