Karl Schultz | 6f09920 | 2016-12-29 16:23:42 -0700 | [diff] [blame] | 1 | # Build Configuration for Travis CI |
| 2 | # https://travis-ci.org |
| 3 | |
Peter Mackay | 466bd4e | 2016-10-21 15:54:03 +0100 | [diff] [blame] | 4 | dist: trusty |
Karl Schultz | 6f09920 | 2016-12-29 16:23:42 -0700 | [diff] [blame] | 5 | sudo: required |
| 6 | language: cpp |
| 7 | |
| 8 | matrix: |
Cody Northrop | 05cb4ab | 2017-01-03 08:14:02 -0700 | [diff] [blame] | 9 | # Show final status immediately if a test fails. |
| 10 | fast_finish: true |
Karl Schultz | 6f09920 | 2016-12-29 16:23:42 -0700 | [diff] [blame] | 11 | include: |
| 12 | # Android build. |
| 13 | - os: linux |
| 14 | compiler: gcc |
Cody Northrop | 93f0562 | 2017-01-03 08:06:03 -0700 | [diff] [blame] | 15 | env: VULKAN_BUILD_TARGET=ANDROID ANDROID_TARGET=android-23 ANDROID_ABI=armeabi-v7a |
Cody Northrop | 34dd116 | 2017-09-29 14:50:54 -0600 | [diff] [blame] | 16 | # Android 64-bit build. |
| 17 | - os: linux |
| 18 | compiler: gcc |
| 19 | env: VULKAN_BUILD_TARGET=ANDROID ANDROID_TARGET=android-23 ANDROID_ABI=arm64-v8a |
Karl Schultz | 6f09920 | 2016-12-29 16:23:42 -0700 | [diff] [blame] | 20 | # Linux GCC debug build. |
| 21 | - os: linux |
| 22 | compiler: gcc |
| 23 | env: VULKAN_BUILD_TARGET=LINUX |
| 24 | # Linux clang debug build. |
| 25 | - os: linux |
| 26 | compiler: clang |
| 27 | env: VULKAN_BUILD_TARGET=LINUX |
Karl Schultz | a53b35f | 2017-12-18 16:16:45 -0700 | [diff] [blame] | 28 | # Check for proper clang formatting in the pull request. |
| 29 | - env: CHECK_FORMAT=ON |
Karl Schultz | 6f09920 | 2016-12-29 16:23:42 -0700 | [diff] [blame] | 30 | |
Cody Northrop | b4dab38 | 2017-10-12 20:44:23 -0600 | [diff] [blame] | 31 | cache: ccache |
Cody Northrop | fa5f296 | 2017-01-03 08:07:15 -0700 | [diff] [blame] | 32 | |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 33 | # Use set -e so that the build fails when a command fails. |
| 34 | # The default action for Travis-CI is to continue running even if a command fails. |
| 35 | # See https://github.com/travis-ci/travis-ci/issues/1066. |
| 36 | # Use the YAML block scalar header (|) to allow easier multiline script coding. |
| 37 | |
Lenny Komow | 3baffe0 | 2017-01-24 14:49:45 -0700 | [diff] [blame] | 38 | before_install: |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 39 | - set -e |
| 40 | - | |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 41 | if [[ "$VULKAN_BUILD_TARGET" == "LINUX" ]]; then |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 42 | # Install the appropriate Linux packages. |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 43 | sudo apt-get -qq update |
| 44 | sudo apt-get -y install libxkbcommon-dev libwayland-dev libmirclient-dev libxrandr-dev libx11-xcb-dev |
| 45 | fi |
| 46 | - | |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 47 | if [[ "$VULKAN_BUILD_TARGET" == "ANDROID" ]]; then |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 48 | # Install the Android NDK. |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 49 | export ARCH=`uname -m` |
Cody Northrop | 69d11db | 2017-12-21 09:31:53 -0700 | [diff] [blame] | 50 | wget http://dl.google.com/android/repository/android-ndk-r15c-linux-${ARCH}.zip |
| 51 | unzip -u -q android-ndk-r15c-linux-${ARCH}.zip |
| 52 | export ANDROID_NDK_HOME=`pwd`/android-ndk-r15c |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 53 | export JAVA_HOME="/usr/lib/jvm/java-8-oracle" |
| 54 | export PATH="$ANDROID_NDK_HOME:$PATH" |
| 55 | fi |
Karl Schultz | a53b35f | 2017-12-18 16:16:45 -0700 | [diff] [blame] | 56 | - | |
| 57 | if [[ "$CHECK_FORMAT" == "ON" && "$TRAVIS_PULL_REQUEST" != "false" ]]; then |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 58 | # Install the clang format diff tool, but only for pull requests. |
Karl Schultz | a53b35f | 2017-12-18 16:16:45 -0700 | [diff] [blame] | 59 | curl -L http://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/clang-format-diff.py -o scripts/clang-format-diff.py; |
| 60 | fi |
| 61 | # Misc setup |
| 62 | - | |
Cody Northrop | 31acf58 | 2017-10-31 13:39:32 -0600 | [diff] [blame] | 63 | - export core_count=$(nproc || echo 4) && echo core_count = $core_count |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 64 | - set +e |
Cody Northrop | dc3238a | 2017-09-08 10:33:53 -0600 | [diff] [blame] | 65 | |
Peter Mackay | 466bd4e | 2016-10-21 15:54:03 +0100 | [diff] [blame] | 66 | script: |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 67 | - set -e |
| 68 | - | |
| 69 | if [[ "$VULKAN_BUILD_TARGET" == "LINUX" ]]; then |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 70 | # Get VulkanTools and build DevSim |
| 71 | mkdir -p external |
| 72 | cd external |
| 73 | git clone https://github.com/LunarG/VulkanTools.git |
| 74 | cd VulkanTools |
| 75 | # Get as little as possible from external sources |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 76 | ./update_external_sources.sh --glslang --no-build |
| 77 | # Build as few components as possible |
| 78 | cmake -H. -Bbuild -DBUILD_LOADER=NO -DBUILD_TESTS=NO \ |
Karl Schultz | 1c58cd1 | 2018-02-06 06:12:35 -0700 | [diff] [blame] | 79 | -DBUILD_LAYERS=NO -DBUILD_DEMOS=NO -DBUILD_VKTRACE=NO \ |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 80 | -DBUILD_VKJSON=NO -DBUILD_VIA=NO -DBUILD_ICD=NO |
| 81 | make -C build -j $core_count |
| 82 | cd ${TRAVIS_BUILD_DIR} |
| 83 | fi |
| 84 | - | |
| 85 | if [[ "$VULKAN_BUILD_TARGET" == "LINUX" ]]; then |
| 86 | # Build LVL |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 87 | ./update_external_sources.sh |
| 88 | cmake -H. -Bdbuild -DCMAKE_BUILD_TYPE=Debug |
| 89 | make -C dbuild -j $core_count |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 90 | fi |
| 91 | - | |
| 92 | if [[ "$VULKAN_BUILD_TARGET" == "LINUX" ]]; then |
| 93 | # Run Tests |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 94 | (cd dbuild/tests; ./vkvalidatelayerdoc.sh) |
| 95 | export LD_LIBRARY_PATH=dbuild/loader:$LD_LIBRARY_PATH |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 96 | export VK_LAYER_PATH=external/VulkanTools/build/layersvt:dbuild/layers |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 97 | export VK_ICD_FILENAMES=dbuild/icd/VkICD_mock_icd.json |
| 98 | dbuild/tests/vk_layer_validation_tests |
Chris Forbes | 8c04a75 | 2018-02-23 10:16:17 -0800 | [diff] [blame] | 99 | for profile in tests/device_profiles/*.json |
| 100 | do |
| 101 | echo Testing with profile $profile |
| 102 | VK_DEVSIM_FILENAME=$profile dbuild/tests/vk_layer_validation_tests --devsim |
| 103 | done |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 104 | fi |
| 105 | - | |
| 106 | if [[ "$VULKAN_BUILD_TARGET" == "ANDROID" ]]; then |
| 107 | pushd build-android |
| 108 | ./update_external_sources_android.sh --abi $ANDROID_ABI --no-build |
| 109 | ./android-generate.sh |
| 110 | USE_CCACHE=1 NDK_CCACHE=ccache ndk-build APP_ABI=$ANDROID_ABI -j $core_count |
| 111 | popd |
| 112 | fi |
Karl Schultz | a53b35f | 2017-12-18 16:16:45 -0700 | [diff] [blame] | 113 | - | |
| 114 | if [[ "$CHECK_FORMAT" == "ON" ]]; then |
| 115 | if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then |
Karl Schultz | 85b3313 | 2018-01-12 14:41:55 -0700 | [diff] [blame] | 116 | # Run the clang format check only for pull request builds because the |
| 117 | # master branch is needed to do the git diff. |
Karl Schultz | a53b35f | 2017-12-18 16:16:45 -0700 | [diff] [blame] | 118 | echo "Checking clang-format between TRAVIS_BRANCH=$TRAVIS_BRANCH and TRAVIS_PULL_REQUEST_BRANCH=$TRAVIS_PULL_REQUEST_BRANCH" |
| 119 | ./scripts/check_code_format.sh |
| 120 | else |
| 121 | echo "Skipping clang-format check since this is not a pull request." |
| 122 | fi |
| 123 | fi |
Karl Schultz | 1e3c0fb | 2017-12-05 18:00:11 -0700 | [diff] [blame] | 124 | - set +e |
Cody Northrop | f6dec18 | 2017-04-06 13:18:13 -0600 | [diff] [blame] | 125 | |
| 126 | notifications: |
| 127 | email: |
| 128 | recipients: |
| 129 | - karl@lunarg.com |
| 130 | - cnorthrop@google.com |
| 131 | - tobine@google.com |
Chris Forbes | 6869b96 | 2017-04-25 13:05:15 -0700 | [diff] [blame] | 132 | - chrisforbes@google.com |
Cody Northrop | f6dec18 | 2017-04-06 13:18:13 -0600 | [diff] [blame] | 133 | on_success: change |
| 134 | on_failure: always |