fixes #414: build Travis on both Linux & OS X (including for iOS)

This commit is contained in:
Justin R. Miller
2014-08-15 17:34:41 -07:00
parent f0f01b334a
commit 5ff80c711f
8 changed files with 55 additions and 27 deletions

View File

@@ -2,9 +2,9 @@ language: cpp
os:
- linux
- osx
compiler:
- gcc
- clang
env:
@@ -17,28 +17,25 @@ env:
- secure: "RiBIBfVhhaMjU5ksuwJO3shdvG9FpinBjdSv4co9jg9171SR8edNriedHjVKSIeBhSGNmZmX+twS3dJS/By6tl/LKh9sTynA+ZAYYljkE7jn881B/gMrlYvdAA6og5KvkhV1/0iJWlhuZrMTkhpDR200iLgg3EWBhWjltzmDW/I="
before_install:
- ./scripts/setup_travis.sh
- source ./scripts/flags.sh
- ./scripts/travis_before_install.sh
install:
- make setup
- npm install git+https://github.com/mapbox/mapbox-gl-test-suite.git
- ./scripts/travis_install.sh
before_script:
- rm -rf mapnik-packaging/out/packages
script:
- make linux -j4 BUILDTYPE=${BUILDTYPE}
- make test -j4 BUILDTYPE=${BUILDTYPE}
- ./scripts/run_tests.sh
- (cd ./node_modules/mapbox-gl-test-suite/ && (./bin/compare_images.js; ./bin/deploy_results.sh))
- ./scripts/travis_script.sh
notifications:
hipchat:
rooms:
secure: "SgMjGDp8MP+UTAY/aWJwSQH2hv1Q0vhEc1BdIde59+lEL3u6gNMSexUTSJoVxRlIQTFXDJBU7v58ISdgJX8cPa+UvIC8hhLsayM+cbm+J3jgy7V9E9wllq3RpmXN33TxY7nwKgWdIms2t9YKZco3y4dKKAUyHXrtMvw8NNPQM+4="
template:
- 'Build <a href="%{build_url}">#%{build_number}</a>: %{author} tested <a href="%{compare_url}">%{commit}</a> in branch <a href="https://github.com/%{repository_slug}/tree/%{branch}">%{branch}</a> of <a href="https://github.com/%{repository_slug}">%{repository_name}</a>: <b>%{commit_message}</b><br>%{message} (%{duration}) - Compare: <a href="http://mapbox-gl-testing.s3.amazonaws.com/headless/%{build_number}.1/index.html">1</a> <a href="http://mapbox-gl-testing.s3.amazonaws.com/headless/%{build_number}.2/index.html">2</a> <a href="http://mapbox-gl-testing.s3.amazonaws.com/headless/%{build_number}.3/index.html">3</a> <a href="http://mapbox-gl-testing.s3.amazonaws.com/headless/%{build_number}.4/index.html">4</a>'
- 'Build <a href="%{build_url}">#%{build_number}</a>: %{author} tested <a href="%{compare_url}">%{commit}</a> in branch <a href="https://github.com/%{repository_slug}/tree/%{branch}">%{branch}</a> of <a href="https://github.com/%{repository_slug}">%{repository_name}</a>: <b>%{commit_message}</b><br>%{message} (%{duration})'
format: html
git:

View File

@@ -73,8 +73,10 @@ clear_xcode_cache:
fi
# build Mac OS X project for Xcode
xproj: config.gypi macosx/mapboxgl-app.gyp clear_xcode_cache node
xproj-cli: config.gypi macosx/mapboxgl-app.gyp clear_xcode_cache node
deps/run_gyp macosx/mapboxgl-app.gyp --depth=. --generator-output=./build -f xcode
xproj: xproj-cli
open ./build/macosx/mapboxgl-app.xcodeproj
# build iOS project for Xcode

0
scripts/flags.sh Normal file → Executable file
View File

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
set -e
set -o pipefail
cd build/Testing
for TEST in ./test_* ; do
${TEST}
done

View File

@@ -1,19 +1,23 @@
#!/usr/bin/env bash
set -e
set -o pipefail
if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
#
# install Linux dependencies
#
if [[ `lsb_release -r` =~ "12.04" ]]; then
sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
fi
sudo apt-get update -y
sudo apt-get -y install gcc-4.8 g++-4.8
sudo apt-get -y install git build-essential zlib1g-dev automake libtool xutils-dev make cmake pkg-config python-pip
sudo apt-get -y install libxi-dev libglu1-mesa-dev x11proto-randr-dev x11proto-xext-dev libxrandr-dev x11proto-xf86vidmode-dev libxxf86vm-dev libxcursor-dev
sudo apt-get -y install git build-essential zlib1g-dev automake \
libtool xutils-dev make cmake pkg-config python-pip
sudo apt-get -y install libxi-dev libglu1-mesa-dev x11proto-randr-dev \
x11proto-xext-dev libxrandr-dev \
x11proto-xf86vidmode-dev libxxf86vm-dev libxcursor-dev
sudo pip install awscli
elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then
#
# install OS X dependencies
#
brew install autoconf automake libtool makedepend cmake pkg-config node git
fi

8
scripts/travis_install.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
#
# we'll need the test suite on Linux
#
npm install git+https://github.com/mapbox/mapbox-gl-test-suite.git
fi

27
scripts/travis_script.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env bash
if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
#
# build & test Linux
#
make linux -j4 BUILDTYPE=${BUILDTYPE}
make test -j4 BUILDTYPE=${BUILDTYPE}
cd build/Testing
for TEST in ./test_* ; do
${TEST}
done
cd ../..
(cd ./node_modules/mapbox-gl-test-suite/ && (./bin/compare_images.js; ./bin/deploy_results.sh))
elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then
#
# build OS X
#
make xproj-cli
xcodebuild -project ./build/macosx/mapboxgl-app.xcodeproj
#
# build iOS
#
git clone --depth 1 https://github.com/mapbox/mapbox-gl-cocoa ios/mapbox-gl-cocoa
make iproj-cli
xcodebuild -project ./build/ios/mapbox-gl-cocoa/app/mapboxgl-app.xcodeproj -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO
fi