summaryrefslogtreecommitdiff
path: root/scripts/travis_script.sh
blob: 093b31273d2c73d9d6dd7f807a8feaa0aefb7be1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/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
    #
    # conditionally publish or test
    #
    if [[ -n "$PUBLISH_TAG" ]]; then
        #
        # build & package iOS
        #
        mapbox_time "package_ios"
        make ipackage
        #
        # publish iOS build
        #
        mapbox_time "deploy_ios"
        ./scripts/publish_ios.sh "$PUBLISH_VERSION"
    else
        #
        # build & test iOS
        #
        mapbox_time "run_ios_tests"
        make itest
    fi
fi