This repository has been archived by the owner on Jul 29, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 304
/
.travis.yml
139 lines (130 loc) · 4.58 KB
/
.travis.yml
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Build Configuration for Travis CI
# https://travis-ci.org
dist: xenial
sudo: required
language: cpp
matrix:
# Show final status immediately if a test fails.
fast_finish: true
include:
# Android build.
- language: android
android:
components:
- build-tools-26.0.2
- android-26
- extra
env: VULKAN_BUILD_TARGET=ANDROID ANDROID_ABI=arm64-v8a
# Linux GCC debug build.
- os: linux
compiler: gcc
env: VULKAN_BUILD_TARGET=LINUX
# Linux clang debug build.
- os: linux
compiler: clang
env: VULKAN_BUILD_TARGET=LINUX
# Check for proper clang formatting in the pull request.
- env: CHECK_FORMAT=ON
cache: ccache
# Use set -e so that the build fails when a command fails.
# The default action for Travis-CI is to continue running even if a command fails.
# See https://github.com/travis-ci/travis-ci/issues/1066.
# Use the YAML block scalar header (|) to allow easier multiline script coding.
# Install the desired CMake before running update_deps.py
before_install:
- set -e
- CMAKE_VERSION=3.10.2
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
CMAKE_URL="https://cmake.org/files/v${CMAKE_VERSION%.*}/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz"
echo CMAKE_URL=${CMAKE_URL}
mkdir cmake-${CMAKE_VERSION} && travis_retry wget --no-check-certificate -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake-${CMAKE_VERSION}
export PATH=${PWD}/cmake-${CMAKE_VERSION}/bin:${PATH}
else
brew install cmake || brew upgrade cmake
fi
cmake --version
- |
if [[ "$TRAVIS_EVENT_TYPE" == "cron" ]]; then
# Add an option to update dependencies from master
UPDATE_DEPS_EXTRA_OPTIONS="--ref=master"
fi
- |
if [[ "$VULKAN_BUILD_TARGET" == "LINUX" ]]; then
# Install the appropriate Linux packages.
sudo apt-get -qq update
sudo apt-get -y install libxkbcommon-dev libwayland-dev libxrandr-dev libx11-xcb-dev
# Install dependencies
python scripts/update_deps.py --dir=external $UPDATE_DEPS_EXTRA_OPTIONS
fi
- |
if [[ "$VULKAN_BUILD_TARGET" == "ANDROID" ]]; then
# Install the Android NDK.
export ARCH=`uname -m`
wget http://dl.google.com/android/repository/android-ndk-r15c-linux-${ARCH}.zip
unzip -u -q android-ndk-r15c-linux-${ARCH}.zip
# export ANDROID_NDK_HOME=`pwd`/android-ndk-r15c
export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export PATH="$ANDROID_NDK_HOME:$PATH"
pushd android-ndk-r15c
ndk_version=$(grep ndkVersion API-Samples/android/project_template/build.gradle | sed "s/^.*ndkVersion//; s/'//g"|sed 's/"//g;s/[[:space:]]//g')
if [ ! -z $ndk_version ]
then
yes | sdkmanager --channel=3 --install "ndk;$ndk_version"
fi
yes | sdkmanager --update
popd
fi
- |
if [[ "$CHECK_FORMAT" == "ON" && "$TRAVIS_PULL_REQUEST" != "false" ]]; then
# Install the clang format diff tool, but only for pull requests.
curl -L http://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/clang-format-diff.py -o scripts/clang-format-diff.py;
fi
# Misc setup
- |
- export core_count=$(nproc || echo 4) && echo core_count = $core_count
- set +e
script:
- set -e
- |
- |
if [[ "$VULKAN_BUILD_TARGET" == "ANDROID" ]]; then
pushd android-ndk-r15c/sources/third_party/shaderc
../../../ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk APP_STL:=c++_static APP_ABI=$ANDROID_ABI NDK_TOOLCHAIN_VERSION:=clang libshaderc_combined -j16
popd
cd API-Samples
cmake --version
cmake -DANDROID=ON -DABI_NAME=$ANDROID_ABI
cd android
python3 compile_shaders.py
./gradlew build
fi
if [[ "$VULKAN_BUILD_TARGET" == "LINUX" ]]; then
# Build VulkanSamples
mkdir build
cd build
cmake -C../external/helper.cmake ..
make -j $core_count
cd ..
fi
- |
if [[ "$CHECK_FORMAT" == "ON" ]]; then
if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then
# Run the clang format check only for pull request builds because the
# master branch is needed to do the git diff.
echo "Checking clang-format between TRAVIS_BRANCH=$TRAVIS_BRANCH and TRAVIS_PULL_REQUEST_BRANCH=$TRAVIS_PULL_REQUEST_BRANCH"
./scripts/check_code_format.sh
else
echo "Skipping clang-format check since this is not a pull request."
fi
fi
- set +e
notifications:
email:
recipients:
- cnorthrop@google.com
- tobine@google.com
- chrisforbes@google.com
- tony@lunarg.com
on_success: change
on_failure: always