build #1859
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: build | |
on: | |
push: | |
branches: [main] | |
paths-ignore: | |
- '**/*.md' # .md files anywhere in the repo | |
- '**/LICENSE' # LICENSE files anywhere in the repo | |
- '**/.gitignore' # .gitignore files anywhere in the repo | |
- '**/*.png' # .png image files anywhere in the repo | |
- '**/*.pdf' # .pdf files anywhere in the repo | |
pull_request: | |
branches: [main] | |
paths-ignore: | |
- '**/*.md' # .md files anywhere in the repo | |
- '**/LICENSE' # LICENSE files anywhere in the repo | |
- '**/.gitignore' # .gitignore files anywhere in the repo | |
- '**/*.png' # .png image files anywhere in the repo | |
- '**/*.pdf' # .pdf files anywhere in the repo | |
workflow_dispatch: | |
schedule: | |
- cron: '35 11 * * *' # once a day @ 11:35am UTC (4:35am PST) | |
env: | |
SCHEME: "MIDIKit-CI" | |
jobs: | |
macOS-13: | |
name: macOS 13 Ventura | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@main | |
- name: Build | |
run: xcodebuild build -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "generic/platform=macOS,name=Any Mac" | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Unit Tests | |
run: xcodebuild test -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "platform=macOS" | xcpretty && exit ${PIPESTATUS[0]} | |
macOS-14: | |
name: macOS 14 Sonoma | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@main | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Build | |
run: xcodebuild build -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "generic/platform=macOS,name=Any Mac" | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Unit Tests | |
run: xcodebuild test -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "platform=macOS" | xcpretty && exit ${PIPESTATUS[0]} | |
macOS-15: | |
name: macOS 15 Sequoia | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@main | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Build | |
run: xcodebuild build -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "generic/platform=macOS,name=Any Mac" | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Unit Tests | |
run: xcodebuild test -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "platform=macOS" | xcpretty && exit ${PIPESTATUS[0]} | |
macCatalyst: | |
name: macCatalyst | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@main | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Build | |
run: xcodebuild build -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "generic/platform=macOS,variant=Mac Catalyst,name=Any Mac" | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Unit Tests | |
run: xcodebuild test -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "platform=macOS,variant=Mac Catalyst" | xcpretty && exit ${PIPESTATUS[0]} | |
iOS: | |
name: iOS | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@main | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Build | |
run: xcodebuild build -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "generic/platform=iOS Simulator,name=Any iOS Device" | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Prepare Destination Device Name | |
shell: bash | |
run: | | |
DESTNAME=$(xcodebuild -showdestinations -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" | perl -nle 'if (m/iOS\sSimulator.*(iPhone\s[\d]{2}.*)\s\}\.*/g) { print $1; }' | sort -r | head -n 1) | |
echo Using device \"$DESTNAME\" | |
echo "DESTNAME=$DESTNAME" >> "$GITHUB_ENV" | |
- name: Unit Tests | |
run: xcodebuild test -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "platform=iOS Simulator,name=$DESTNAME" | xcpretty && exit ${PIPESTATUS[0]} | |
tvOS: | |
name: tvOS | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@main | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Build | |
run: xcodebuild build -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "generic/platform=tvOS Simulator,name=Any tvOS Simulator Device" | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Prepare Destination Device Name | |
shell: bash | |
run: | | |
DESTNAME=$(xcodebuild -showdestinations -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" | perl -nle 'if (m/tvOS\sSimulator.*(Apple\sTV\s4K.*)\s\}\.*/g) { print $1; }' | sort -r | head -n 1) | |
echo Using device \"$DESTNAME\" | |
echo "DESTNAME=$DESTNAME" >> "$GITHUB_ENV" | |
- name: Unit Tests | |
run: xcodebuild test -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "platform=tvOS Simulator,name=$DESTNAME" | xcpretty && exit ${PIPESTATUS[0]} | |
watchOS: | |
name: watchOS | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@main | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Build | |
run: xcodebuild build -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "generic/platform=watchOS Simulator,name=Any watchOS Simulator Device" | xcpretty && exit ${PIPESTATUS[0]} | |
- name: Prepare Destination Device Name | |
shell: bash | |
run: | | |
DESTNAME=$(xcodebuild -showdestinations -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" | perl -nle 'if (m/watchOS\sSimulator.*(Apple\sWatch\sSeries\s[\d]{2}.*)\s\}\.*/g) { print $1; }' | sort -r | head -n 1) | |
echo Using device \"$DESTNAME\" | |
echo "DESTNAME=$DESTNAME" >> "$GITHUB_ENV" | |
- name: Unit Tests | |
run: xcodebuild test -workspace ".swiftpm/xcode/package.xcworkspace" -scheme "$SCHEME" -destination "platform=watchOS Simulator,name=$DESTNAME" | xcpretty && exit ${PIPESTATUS[0]} |