mirror of
https://github.com/kyleneideck/BackgroundMusic
synced 2024-11-23 04:33:03 +00:00
59e70fb9d1
This is mostly so BGMApp won't leave BGMDevice as the default if BGMApp crashes, which would stop audio from playing until the user changed the default device themselves. Also handles SIGINT, SIGTERM and SIGQUIT. For crashes where the BGMApp process may be in an unknown state, e.g. segfaults, BGMXPCHelper handles changing the default device. Should fix the Travis Xcode 9 build, which is currently failing because the AppleScript we use to quit BGMApp in .travis.yml gets "user cancelled" for some reason. Also makes some minor improvements to the reports generated by CrashReporter. The way CrashReporter works with Background Music should otherwise be unchanged.
106 lines
4.8 KiB
YAML
106 lines
4.8 KiB
YAML
language: objective-c
|
|
matrix:
|
|
include:
|
|
- os: osx
|
|
osx_image: xcode9.1
|
|
xcode_sdk: macosx10.13
|
|
sudo: required
|
|
env: DEPLOY=true
|
|
- os: osx
|
|
osx_image: xcode9
|
|
xcode_sdk: macosx10.13
|
|
sudo: required
|
|
- os: osx
|
|
osx_image: xcode8.3
|
|
xcode_sdk: macosx10.12
|
|
sudo: required
|
|
- os: osx
|
|
osx_image: xcode8.2
|
|
xcode_sdk: macosx10.12
|
|
sudo: required
|
|
- os: osx
|
|
osx_image: xcode8.1
|
|
xcode_sdk: macosx10.12
|
|
sudo: required
|
|
- os: osx
|
|
osx_image: xcode8
|
|
xcode_sdk: macosx10.11
|
|
sudo: required
|
|
- os: osx
|
|
osx_image: xcode7.3
|
|
xcode_sdk: macosx10.11
|
|
sudo: required
|
|
env: PACKAGE=false
|
|
# branches:
|
|
# only:
|
|
# - master
|
|
install:
|
|
# Install Apple's NullAudio device. Travis' VMs don't have any audio devices installed.
|
|
- sudo xcodebuild -project BGMApp/BGMAppTests/NullAudio/AudioDriverExamples.xcodeproj -target NullAudio DSTROOT="/" install
|
|
- sudo launchctl kickstart -kp system/com.apple.audio.coreaudiod || sudo killall coreaudiod
|
|
script:
|
|
# Build in a case-sensitive disk image to catch failures that only happen on case-sensitive filesystems.
|
|
- hdiutil create -type SPARSEBUNDLE -fs 'Case-sensitive Journaled HFS+' -volname bgmbuild -nospotlight -verbose -attach -size 50m bgmbuild.dmg
|
|
- sudo cp -r . /Volumes/bgmbuild
|
|
- cd /Volumes/bgmbuild
|
|
# Install Background Music.
|
|
- yes | ./build_and_install.sh
|
|
- cat build_and_install.log
|
|
- find */build/Release/*/ -type f -exec md5 {} \;
|
|
# Log the installed audio devices...
|
|
- system_profiler SPAudioDataType
|
|
# ...and their IDs.
|
|
- say -a '?'
|
|
# Check the BGM dirs and files were installed. (These fail if the dir/file isn't found.)
|
|
- ls -la "/Applications/Background Music.app"
|
|
- ls -la "/Library/Audio/Plug-Ins/HAL/Background Music Device.driver"
|
|
- ls -la "/usr/local/libexec/BGMXPCHelper.xpc" || ls -la "/Library/Application Support/Background Music/BGMXPCHelper.xpc"
|
|
- ls -la "/Library/LaunchDaemons/com.bearisdriving.BGM.XPCHelper.plist"
|
|
# Close BGMApp (which the install script opened).
|
|
#
|
|
# The killall fallback command is necessary because the AppleScript gets "user canceled" on Travis'
|
|
# Xcode 9 images for some reason.
|
|
- osascript -e 'tell application "Background Music" to quit' || killall "Background Music"
|
|
# Skip the UI tests until Travis has support for them.
|
|
- BGMApp/BGMAppTests/UITests/travis-skip.py
|
|
# Run the tests.
|
|
- xcodebuild -workspace BGM.xcworkspace -scheme 'Background Music Device' test
|
|
- xcodebuild -workspace BGM.xcworkspace -scheme 'Background Music' test
|
|
- xcodebuild -workspace BGM.xcworkspace -scheme 'BGMXPCHelper' test
|
|
# Uninstall Background Music.
|
|
- yes | ./uninstall.sh
|
|
# Check the BGM dirs and files were removed.
|
|
- if ls -la "/Applications/Background Music.app"; then false; fi
|
|
- if ls -la "/Library/Audio/Plug-Ins/HAL/Background Music Device.driver"; then false; fi
|
|
- if ls -la "/usr/local/libexec/BGMXPCHelper.xpc"; then false; fi
|
|
- if ls -la "/Library/Application Support/Background Music/BGMXPCHelper.xpc"; then false; fi
|
|
- if ls -la "/Library/LaunchDaemons/com.bearisdriving.BGM.XPCHelper.plist"; then false; fi
|
|
# Return early if we're not testing packaging on this OS X version.
|
|
- if [[ "$PACKAGE" == "false" ]]; then exit 0; fi
|
|
# Build the .pkg installer.
|
|
- ./package.sh
|
|
# Install the .pkg.
|
|
- sudo installer -pkg Background-Music-*/BackgroundMusic-*.pkg -target / -verbose -dumplog
|
|
# Check the BGM dirs and files were installed again.
|
|
- ls -la "/Applications/Background Music.app"
|
|
- ls -la "/Library/Audio/Plug-Ins/HAL/Background Music Device.driver"
|
|
- ls -la "/usr/local/libexec/BGMXPCHelper.xpc" || ls -la "/Library/Application Support/Background Music/BGMXPCHelper.xpc"
|
|
- ls -la "/Library/LaunchDaemons/com.bearisdriving.BGM.XPCHelper.plist"
|
|
# Post on IRC when Travis builds finish.
|
|
notifications:
|
|
irc: "irc.freenode.org#backgroundmusic"
|
|
# Upload the .pkg and dSYM zip to GitHub.
|
|
deploy:
|
|
provider: releases
|
|
api_key:
|
|
secure: j5GdMTkJI/9lfGMcAW4dnBnfNSW0EUGSuaKSXw49FfjfcshLL2RFxIbQkyA7QqjoJm6ohstU3tOCo7c9FrqIWjE/+5itGJpq7NXDRxFtd2qzcli1u+1IRvQUZJ4VYC9982pSS0IUynK9/f0rhbdkWsCuXWIjoClYPBRscc8soDBJvkDbfilPFfFgkc8TuSmtGDCdu9coGVi6b9HuTLNQU0g5DZkjmv71Vj3SwJ2CmvOk3GFfV1SjvG2SRgBDwyP1g9MRGRiNYkmK9lJRgsq2KLluzb04lt22x8RIcZ+kZYOQVmgDlCeWlOcXi0iz1wU/QzdoYFEAnJdG4q0hqKeqIi+p8Tc31nHPuc1ZlYpifzMQ6KuOoOP19eceJwriAT133t2RSB3Rl3nxh9bymNPNyQ2dJwGNFtO68f3aZsuE5L92lVgW/ipZ6e5Sw1ovXldR04mxNtyY4WvFXFlkn/776tKV0vgAubsHfceGM/aRoBj+E2gDvqkFqIR8wrZAZEeSM2reMHPMx5ICFppIZ8dCIVjF5bsxZQsbojY+LXV8BUU5kLAou0yD7Q+lHi9r3HYdN90+cC02HKGFYzsIiMAyf4IAngnLhwmmrLOwr3wWdACjYTJhznAZGNJh4lCeB4dx85iyj3EexJ6J/DL1k2+ZNKyMN3+i/215t+AvSsXuw5U=
|
|
file_glob: true
|
|
file: Background-Music-*/*
|
|
skip_cleanup: true
|
|
on:
|
|
repo: kyleneideck/BackgroundMusic
|
|
tags: true
|
|
# TODO: Use "condition" to build master and tags?
|
|
condition: $DEPLOY = true
|
|
|
|
|