mirror of https://github.com/OpenRCT2/OpenRCT2.git
OS X job for Travis CI
This adds automated builds for OS X to our CI infrastructure. XCode's `xcodebuild` tool is quite spammy by default, so I used a prettifier for its output. Since this could potentially cover errors from XCode due to piping of commands, I enabled `pipefail` option which would cause all of pipe construct fail, should any of its commands exit with non-zero code. The created app bundle is packaged into dmg and uploaded to transfer.sh, if the build was successful. To the best of my knowledge, this is *the* way of packaging and distributing OS X applications.
This commit is contained in:
parent
17c01a36a7
commit
683033d3f2
78
.travis.yml
78
.travis.yml
|
@ -1,10 +1,62 @@
|
|||
language: c
|
||||
|
||||
before_install:
|
||||
- bash scripts/linux/install.sh
|
||||
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then bash scripts/linux/install.sh; fi
|
||||
- if [[ $TRAVIS_OS_NAME == "osx" ]]; then gem install xcpretty-travis-formatter; fi
|
||||
|
||||
sudo: required
|
||||
dist: trusty
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
env: OPENRCT2_CMAKE_OPTS="-DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
- os: linux
|
||||
env: OPENRCT2_CMAKE_OPTS="-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
|
||||
- os: linux
|
||||
env: OPENRCT2_CMAKE_OPTS="-DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
- os: linux
|
||||
env: TARGET=docker32
|
||||
services:
|
||||
- docker
|
||||
- os: linux
|
||||
env: OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON" TARGET=docker32
|
||||
services:
|
||||
- docker
|
||||
- os: osx
|
||||
sudo: false
|
||||
osx_image: xcode7.2
|
||||
after_success:
|
||||
- cd build/Release
|
||||
- hdiutil create -size 64m -fs HFS+ -volname "OpenRCT2 OS X" myimg.dmg
|
||||
- hdiutil attach myimg.dmg
|
||||
- export DEVS=$(hdiutil attach myimg.dmg | cut -f 1)
|
||||
- export DEV=$(echo $DEVS | cut -f 1 -d ' ')
|
||||
- cp -rv OpenRCT2.app "/Volumes/OpenRCT2 OS X"
|
||||
- sync
|
||||
- hdiutil detach $DEV
|
||||
- hdiutil convert myimg.dmg -format UDZO -o OpenRCT2.dmg
|
||||
- curl --upload-file OpenRCT2.dmg http://transfer.sh/OpenRCT2.dmg
|
||||
# Following entries used to be included in testing, but they only proved useful while changing things in CMake setup.
|
||||
# They are meant to be used when there are changes to CMakeLists.txt
|
||||
# - os: linux
|
||||
# env: OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON -DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
# - os: linux
|
||||
# env: OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
|
||||
# - os: linux
|
||||
# env: OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=OFF -DDISABLE_HTTP_TWITCH=ON -DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
# - os: linux
|
||||
# env: OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=OFF -DDISABLE_HTTP_TWITCH=OFF -DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
# - os: linux
|
||||
# env: OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
# - os: linux
|
||||
# env: OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
# - os: linux
|
||||
# env: OPENRCT2_CMAKE_OPTS="-DDISABLE_HTTP_TWITCH=ON -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
|
||||
script:
|
||||
- bash scripts/linux/build.sh
|
||||
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then bash scripts/linux/build.sh ; fi
|
||||
- if [[ $TRAVIS_OS_NAME == "osx" ]]; then set -o pipefail && xcodebuild | xcpretty -f `xcpretty-travis-formatter`; fi
|
||||
|
||||
notifications:
|
||||
on_failure: change
|
||||
|
@ -14,25 +66,3 @@ cache:
|
|||
directories:
|
||||
- .cache
|
||||
apt: true
|
||||
|
||||
env:
|
||||
- OPENRCT2_CMAKE_OPTS="-DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
- OPENRCT2_CMAKE_OPTS="-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
|
||||
- OPENRCT2_CMAKE_OPTS="-DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
- TARGET=docker32
|
||||
- OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON" TARGET=docker32
|
||||
# Following entries used to be included in testing, but they only proved useful while changing things in CMake setup.
|
||||
# They are meant to be used when there are changes to CMakeLists.txt
|
||||
# - OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON -DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
# - OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
|
||||
# - OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=OFF -DDISABLE_HTTP_TWITCH=ON -DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
# - OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=OFF -DDISABLE_HTTP_TWITCH=OFF -DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8"
|
||||
# - OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
# - OPENRCT2_CMAKE_OPTS="-DDISABLE_NETWORK=ON -DDISABLE_HTTP_TWITCH=ON -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
# - OPENRCT2_CMAKE_OPTS="-DDISABLE_HTTP_TWITCH=ON -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt" TARGET=windows
|
||||
|
||||
sudo: required
|
||||
dist: trusty
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
|
Loading…
Reference in New Issue