summaryrefslogtreecommitdiff
path: root/scripts/travis_script.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/travis_script.sh')
-rwxr-xr-xscripts/travis_script.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/scripts/travis_script.sh b/scripts/travis_script.sh
new file mode 100755
index 0000000000..0351f94144
--- /dev/null
+++ b/scripts/travis_script.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env bash
+
+COMMIT_MESSAGE=$(git show -s --format=%B $1 | tr -d '\n')
+PUBLISH_TAG=$(echo "$COMMIT_MESSAGE" | grep -oE '\[publish [a-z0-9\.\-]+\]' | grep -oE '[a-z0-9\.\-]+' | tail -n1)
+PUBLISH_PLATFORM=$(echo "$PUBLISH_TAG" | awk -F '-v' '{ print $1 }')
+PUBLISH_VERSION=$(echo "$PUBLISH_TAG" | awk -F '-v' '{ print $2 }')
+
+set -e
+set -o pipefail
+
+mapbox_time "checkout_styles" \
+git submodule update --init styles
+
+if [[ $MASON_PLATFORM == "android" ]]; then
+ ./android/scripts/run-build.sh
+
+elif [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
+ #
+ # build & test Linux
+ #
+ mapbox_time "compile_program" \
+ make linux -j$JOBS BUILDTYPE=${BUILDTYPE}
+
+ mapbox_time "compile_tests" \
+ make test -j$JOBS BUILDTYPE=${BUILDTYPE}
+
+ mapbox_time "checkout_test_suite" \
+ git submodule update --init test/suite
+
+ mapbox_time "run_tests" \
+ make test-* BUILDTYPE=${BUILDTYPE}
+
+ mapbox_time "compare_results" \
+ ./scripts/compare_images.sh
+
+ if [ ! -z "${AWS_ACCESS_KEY_ID}" ] && [ ! -z "${AWS_SECRET_ACCESS_KEY}" ] ; then
+ mapbox_time_start "deploy_results"
+ (cd ./test/suite/ && ./bin/deploy_results.sh)
+ mapbox_time_finish
+ fi
+
+elif [[ ${TRAVIS_OS_NAME} == "osx" && ${MASON_PLATFORM} == "osx" ]]; then
+ #
+ # build OS X
+ #
+ mapbox_time "build_osx" \
+ make xosx -j$JOBS
+
+elif [[ ${TRAVIS_OS_NAME} == "osx" && ${MASON_PLATFORM} == "ios" ]]; then
+ #
+ # build & package iOS
+ #
+ mapbox_time "package_ios"
+ make ipackage
+ #
+ # conditionally deploy iOS build
+ #
+ if [[ -n "$PUBLISH_TAG" ]]; then
+ mapbox_time "deploy_ios"
+ ./scripts/publish_ios.sh "$PUBLISH_VERSION"
+ fi
+fi