[build] add ccache + Circle CI caching

This commit is contained in:
Konstantin Käfer
2017-06-30 12:49:47 -07:00
parent 92354bdc25
commit 6ca7b28e60
5 changed files with 279 additions and 315 deletions

1
.gitignore vendored
View File

@@ -33,3 +33,4 @@ xcuserdata
/documentation
test/fixtures/api/assets.zip
test/fixtures/storage/assets.zip
/.circle-week

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.4)
project(mbgl LANGUAGES CXX C)
set(CMAKE_CXX_STANDARD 14)
@@ -86,6 +86,34 @@ elseif(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals")
endif()
# Technique from https://crascit.com/2016/04/09/using-ccache-with-cmake/
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
set(C_LAUNCHER "${CCACHE_PROGRAM}")
set(CXX_LAUNCHER "${CCACHE_PROGRAM}")
configure_file(scripts/launch-c.in launch-c)
configure_file(scripts/launch-cxx.in launch-cxx)
execute_process(COMMAND chmod a+rx "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx")
if(CMAKE_GENERATOR STREQUAL "Xcode")
# Set Xcode project attributes to route compilation and linking through our scripts
set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx")
set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx")
else()
# Support Unix Makefiles and Ninja
set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-cxx")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
# ccache splits up the compile steps, so we end up with unused arguments in some steps.
# Clang also thinks that ccache isn't interactive, so we explicitly need to enable color.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics")
endif()
endif()
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/platform/${MBGL_PLATFORM}/config.cmake)
message(ERROR "Can't find config.cmake file for platform ${MBGL_PLATFORM}")
endif()

View File

@@ -19,27 +19,118 @@ workflows:
- linux-gcc5-release-qt4
- linux-gcc5-release-qt5
jobs:
step-library:
- &generate-cache-key
run:
name: Generate cache key
command: |
echo "$(date +"%Y-%V")" > .circle-week
ccache --clear
ccache --max-size=5G
- &restore-cache
restore_cache:
keys:
- 'v3/{{ .Environment.CIRCLE_JOB }}/{{ .Branch }}/{{ checksum ".circle-week" }}'
- 'v3/{{ .Environment.CIRCLE_JOB }}/master/{{ checksum ".circle-week" }}'
- &save-cache
save_cache:
key: 'v3/{{ .Environment.CIRCLE_JOB }}/{{ .Branch }}/{{ checksum ".circle-week" }}'
paths: [ "node_modules", "/root/.ccache", "mason_packages/.binaries" ]
- &reset-ccache-stats
run:
name: Clear ccache statistics
command: |
ccache --zero-stats
ccache --show-stats
- &show-ccache-stats
run:
name: Show ccache statistics
command: ccache --show-stats
- &setup-llvm-symbolizer
run:
name: Environment Setup
command: |
# LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
# We'll use tee to redirect stderr to a file so we can check for sanitiziation
# https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
- &build-node
run:
name: Build node
command: make node
- &build-linux
run:
name: Build linux
command: make linux
- &build-benchmark
run:
name: Build benchmark
command: make benchmark
- &build-test
run:
name: Build test
command: make test
- &build-qt-app
run:
name: Build qt-app
command: make qt-app
- &build-qt-test
run:
name: Build qt-test
command: make qt-test
- &run-node-tests
run:
name: Run node tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
logbt -- apitrace trace --api=egl -v make test-node
- &run-unit-tests
run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
make run-test
- &publish-node-package
run:
name: Publish node package
when: on_success
command: platform/node/scripts/after_success.sh
- &upload-render-tests
store_artifacts:
path: mapbox-gl-js/test/integration/render-tests/index.html
destination: render-tests
jobs:
# ------------------------------------------------------------------------------
clang-tidy:
docker:
- image: mbgl/ci:r4-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Debug
branches:
ignore:
- master
steps:
- checkout
- restore_cache:
key: v1-clang-tidy
paths:
- node_modules
- /root/.ccache
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- run:
name: Fetch 'origin/master' branch
command: git fetch origin master:refs/remotes/origin/master
@@ -49,28 +140,23 @@ jobs:
- run:
name: Run Clang checks
command: make check
- save_cache:
key: v1-clang-tidy
paths:
- node_modules
- /root/.ccache
- *show-ccache-stats
- *save-cache
# ------------------------------------------------------------------------------
android-debug-arm-v7:
docker:
- image: mbgl/ci:r4-android-ndk-r15-gradle
- image: mbgl/ci@sha256:c34e221294d81da80918d3e9a9df5de795b067e88f86d7c9a5e262763332536e
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Debug
steps:
- checkout
- restore_cache:
key: v1-android-debug-arm-v7
paths:
- node_modules
- /root/.ccache
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- run:
name: Build libmapbox-gl.so for arm-v7
command: make android-lib-arm-v7
@@ -94,6 +180,8 @@ jobs:
command: |
echo "${MAPBOX_DEVELOPER_CONFIG_XML}" > platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml
make android-ui-test-arm-v7
- *show-ccache-stats
- *save-cache
- run:
name: Log in to Google Cloud Platform
shell: /bin/bash -euo pipefail
@@ -122,11 +210,6 @@ jobs:
xargs -0 -I '{}' ${ANDROID_NDK_HOME}/ndk-stack -sym build/android-arm-v7/Debug -dump {}
exit ${EXIT_CODE:-0}
- save_cache:
key: v1-android-debug-arm-v7
paths:
- node_modules
- /root/.ccache
- store_artifacts:
path: platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk
destination: .
@@ -134,19 +217,17 @@ jobs:
# ------------------------------------------------------------------------------
android-release-all:
docker:
- image: mbgl/ci:r4-android-ndk-r15-gradle
- image: mbgl/ci@sha256:c34e221294d81da80918d3e9a9df5de795b067e88f86d7c9a5e262763332536e
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Release
steps:
- checkout
- restore_cache:
key: v1-android-release-all
paths:
- node_modules
- /root/.ccache
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- run:
name: Generate Maven credentials
shell: /bin/bash -euo pipefail
@@ -160,6 +241,8 @@ jobs:
- run:
name: Build package
command: make apackage
- *show-ccache-stats
- *save-cache
- store_artifacts:
path: platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk
destination: .
@@ -172,11 +255,7 @@ jobs:
name: Publish to Maven
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then make run-android-upload-archives ; fi
- save_cache:
key: v1-android-release-all
paths:
- node_modules
- /root/.ccache
# ------------------------------------------------------------------------------
node4-clang39-release:
@@ -184,39 +263,23 @@ jobs:
- image: mbgl/ci:r4-linux-clang-3.9-node-4
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Release
WITH_EGL: 1
PACKAGE_JSON_VERSION: $(node -e "console.log(require('./package.json').version)")
PUBLISH: $([[ "${CIRCLE_BRANCH}" == "node-v${PACKAGE_JSON_VERSION}" ]] && echo true)
steps:
- checkout
- restore_cache:
key: v1-node4-clang39-release
paths:
- node_modules
- /root/.ccache
- run:
name: Build node
command: make node
- run:
name: Run node tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
logbt -- apitrace trace --api=egl -v make test-node
- run:
name: Publish node package
when: on_success
command: platform/node/scripts/after_success.sh
- save_cache:
key: v1-node4-clang39-release
paths:
- node_modules
- /root/.ccache
- store_artifacts:
path: mapbox-gl-js/test/integration/render-tests/index.html
destination: render-tests
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-node
- *show-ccache-stats
- *run-node-tests
- *publish-node-package
- *save-cache
- *upload-render-tests
# ------------------------------------------------------------------------------
node6-clang39-release:
@@ -224,39 +287,23 @@ jobs:
- image: mbgl/ci:r4-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Release
WITH_EGL: 1
PACKAGE_JSON_VERSION: $(node -e "console.log(require('./package.json').version)")
PUBLISH: $([[ "${CIRCLE_BRANCH}" == "node-v${PACKAGE_JSON_VERSION}" ]] && echo true)
steps:
- checkout
- restore_cache:
key: v1-node6-clang39-release
paths:
- node_modules
- /root/.ccache
- run:
name: Build node
command: make node
- run:
name: Run node tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
logbt -- apitrace trace --api=egl -v make test-node
- run:
name: Publish node package
when: on_success
command: platform/node/scripts/after_success.sh
- save_cache:
key: v1-node6-clang39-release
paths:
- node_modules
- /root/.ccache
- store_artifacts:
path: mapbox-gl-js/test/integration/render-tests/index.html
destination: render-tests
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-node
- *show-ccache-stats
- *run-node-tests
- *publish-node-package
- *save-cache
- *upload-render-tests
# ------------------------------------------------------------------------------
node6-clang39-debug:
@@ -264,39 +311,23 @@ jobs:
- image: mbgl/ci:r4-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Debug
WITH_EGL: 1
PACKAGE_JSON_VERSION: $(node -e "console.log(require('./package.json').version)")
PUBLISH: $([[ "${CIRCLE_BRANCH}" == "node-v${PACKAGE_JSON_VERSION}" ]] && echo true)
steps:
- checkout
- restore_cache:
key: v1-node6-clang39-debug
paths:
- node_modules
- /root/.ccache
- run:
name: Build node
command: make node
- run:
name: Run node tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
logbt -- apitrace trace --api=egl -v make test-node
- run:
name: Publish node package
when: on_success
command: platform/node/scripts/after_success.sh
- save_cache:
key: v1-node6-clang39-debug
paths:
- node_modules
- /root/.ccache
- store_artifacts:
path: mapbox-gl-js/test/integration/render-tests/index.html
destination: render-tests
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-node
- *show-ccache-stats
- *run-node-tests
- *publish-node-package
- *save-cache
- *upload-render-tests
# ------------------------------------------------------------------------------
linux-clang39-debug:
@@ -304,37 +335,21 @@ jobs:
- image: mbgl/ci:r4-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Debug
WITH_EGL: 1
steps:
- checkout
- restore_cache:
key: v1-linux-clang39-debug
paths:
- node_modules
- /root/.ccache
- run:
name: Build linux
command: make linux
- run:
name: Build benchmark
command: make benchmark
- run:
name: Build test
command: make test
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
make run-test
- save_cache:
key: v1-linux-clang39-debug
paths:
- node_modules
- /root/.ccache
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-linux
- *build-benchmark
- *build-test
- *show-ccache-stats
- *run-unit-tests
- *save-cache
# ------------------------------------------------------------------------------
linux-clang4-sanitize-address:
@@ -342,44 +357,29 @@ jobs:
- image: mbgl/ci:r4-linux-clang-4
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Sanitize
WITH_EGL: 1
GDB: '' # Do not run with GDB
CXXFLAGS: -fsanitize=address
LDFLAGS: -fsanitize=address
ASAN_OPTIONS: detect_leaks=0:color=always
ASAN_OPTIONS: detect_leaks=0:color=always:print_summary=1
steps:
- checkout
- restore_cache:
key: v1-linux-clang4-sanitize-address
paths:
- node_modules
- /root/.ccache
- run:
name: Environment Setup
command: |
# LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
# We'll use tee to redirect stderr to a file so we can check for sanitiziation
# https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
- run:
name: Build test
command: make test
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *setup-llvm-symbolizer
- *build-test
- *show-ccache-stats
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" make run-test 2> >(tee sanitizer 1>&2)
# Unfortunately, Google Test eats the status code, so we'll have to check the output.
[ -z "$(sed -n '/^SUMMARY: AddressSanitizer:/p' sanitizer)" ]
- save_cache:
key: v1-linux-clang4-sanitize-address
paths:
- node_modules
- /root/.ccache
- *save-cache
# ------------------------------------------------------------------------------
linux-clang4-sanitize-undefined:
@@ -387,46 +387,29 @@ jobs:
- image: mbgl/ci:r4-linux-clang-4
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Sanitize
WITH_EGL: 1
GDB: '' # Do not run with GDB
CXXFLAGS: -fsanitize=undefined
LDFLAGS: -fsanitize=undefined
UBSAN_OPTIONS: print_stacktrace=1:color=always
UBSAN_OPTIONS: print_stacktrace=1:color=always:print_summary=1
steps:
- checkout
- restore_cache:
key: v1-linux-clang4-sanitize-undefined
paths:
- node_modules
- /root/.ccache
- run:
name: Environment Setup
command: |
# LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
# We'll use tee to redirect stderr to a file so we can check for sanitiziation
# https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
- run:
name: Build test
command: make test
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *setup-llvm-symbolizer
- *build-test
- *show-ccache-stats
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" make run-test 2> >(tee sanitizer 1>&2)
# Unfortunately, Google Test eats the status code, so we'll have to check the output.
# Uncomment this once we've fixed all thread behavior to make new thread behavior
# fail on CircleCI.
# [ -z "$(sed -n '/^SUMMARY: UndefinedBehaviorSanitizer:/p' sanitizer)" ]
- save_cache:
key: v1-linux-clang4-sanitize-address-undefined
paths:
- node_modules
- /root/.ccache
[ -z "$(sed -n '/^SUMMARY: UndefinedBehaviorSanitizer:/p' sanitizer)" ]
- *save-cache
# ------------------------------------------------------------------------------
linux-clang4-sanitize-thread:
@@ -434,52 +417,37 @@ jobs:
- image: mbgl/ci:r4-linux-clang-4
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
LIBSYSCONFCPUS: 4
JOBS: 4
BUILDTYPE: Sanitize
WITH_EGL: 1
GDB: '' # Do not run with GDB
CXXFLAGS: -fsanitize=thread
LDFLAGS: -fsanitize=thread
TSAN_OPTIONS: color=always
TSAN_OPTIONS: color=always:print_summary=1
steps:
- checkout
- restore_cache:
key: v1-linux-clang4-sanitize-thread
paths:
- node_modules
- /root/.ccache
- run:
name: Environment Setup
command: |
# LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
# We'll use tee to redirect stderr to a file so we can check for sanitiziation
# https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
- run:
name: Build test
command: make test
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *setup-llvm-symbolizer
- *build-test
- *show-ccache-stats
- *save-cache
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" make run-test 2> >(tee sanitizer 1>&2)
# Unfortunately, Google Test eats the status code, so we'll have to check the output.
[ -z "$(sed -n '/^SUMMARY: ThreadSanitizer:/p' sanitizer)" ]
- save_cache:
key: v1-linux-clang4-sanitize-thread
paths:
- node_modules
- /root/.ccache
# ------------------------------------------------------------------------------
linux-gcc4.9-debug:
docker:
- image: mbgl/ci:r3-linux-gcc-4.9
- image: mbgl/ci:r4-linux-gcc-4.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
LIBSYSCONFCPUS: 4
JOBS: 2
BUILDTYPE: Debug
WITH_EGL: 1
@@ -487,32 +455,15 @@ jobs:
DISPLAY: :0
steps:
- checkout
- restore_cache:
key: v1-linux-gcc4.9-debug
paths:
- node_modules
- /root/.ccache
- run:
name: Build linux
command: make linux
- run:
name: Build benchmark
command: make benchmark
- run:
name: Build test
command: make test
- run:
name: Run tests
command: |
source scripts/circle_setup.sh
mapbox_export_mesa_library_path
xvfb-run --server-args="-screen 0 1024x768x24" \
make run-test
- save_cache:
key: v1-linux-gcc4.9-debug
paths:
- node_modules
- /root/.ccache
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-linux
- *build-benchmark
- *build-test
- *show-ccache-stats
- *save-cache
- *run-unit-tests
# ------------------------------------------------------------------------------
linux-gcc5-debug-coverage:
@@ -520,41 +471,25 @@ jobs:
- image: mbgl/ci:r4-linux-gcc-5
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
LIBSYSCONFCPUS: 4
JOBS: 2
BUILDTYPE: Debug
WITH_EGL: 1
WITH_COVERAGE: 1
steps:
- checkout
- restore_cache:
key: v1-linux-gcc5-debug-coverage
paths:
- node_modules
- /root/.ccache
- run:
name: Build linux
command: make linux
- run:
name: Build benchmark
command: make benchmark
- run:
name: Build test
command: make test
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
make run-test
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-linux
- *build-benchmark
- *build-test
- *run-unit-tests
- run:
name: Upload coverage results to coveralls
command: |
platform/linux/scripts/coveralls.sh
- save_cache:
key: v1-linux-gcc5-debug-coverage
paths:
- node_modules
- /root/.ccache
- *save-cache
# ------------------------------------------------------------------------------
linux-gcc5-release-qt4:
@@ -562,36 +497,26 @@ jobs:
- image: mbgl/ci:r4-linux-gcc-5-qt-4
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
LIBSYSCONFCPUS: 4
JOBS: 2 # OOM, causing the compiler to crash.
BUILDTYPE: Release
GTEST_OUTPUT: xml
LD_PRELOAD: /usr/lib/x86_64-linux-gnu/libjemalloc.so
DISPLAY: 0
steps:
- checkout
- restore_cache:
key: v1-linux-gcc5-release-qt4
paths:
- node_modules
- /root/.ccache
- run:
name: Build qt-app
command: make qt-app
- run:
name: Build qt-test
command: make qt-test
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-qt-app
- *build-qt-test
- *show-ccache-stats
- run:
name: Run memory-load tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
make run-qt-test-Memory.*:*.Load
scripts/log_memory_benchmarks.sh test_detail.xml "Platform=Linux,Compiler=${_CC},Arch=$(uname -m)"
- save_cache:
key: v1-linux-gcc5-release-qt4
paths:
- node_modules
- /root/.ccache
- *save-cache
# ------------------------------------------------------------------------------
linux-gcc5-release-qt5:
@@ -599,27 +524,21 @@ jobs:
- image: mbgl/ci:r4-linux-gcc-5-qt-5
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
LIBSYSCONFCPUS: 4
JOBS: 2 # OOM, causing the compiler to crash.
BUILDTYPE: Release
WITH_QT_I18N: 1
DISPLAY: 0
steps:
- checkout
- restore_cache:
key: v1-linux-gcc5-release-qt5
paths:
- node_modules
- /root/.ccache
- run:
name: Build qt-app
command: make qt-app
- run:
name: Build qt-test
command: make qt-test
- *generate-cache-key
- *restore-cache
- *reset-ccache-stats
- *build-qt-app
- *build-qt-test
- run:
name: Build qt-docs
command: make qt-docs
- *show-ccache-stats
- run:
name: Run valgrind-backed tests
environment:
@@ -627,8 +546,4 @@ jobs:
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
scripts/valgrind.sh build/qt-linux-x86_64/Release/mbgl-test --gtest_filter=-*.Load --gtest_filter=-Memory.Vector
- save_cache:
key: v1-linux-gcc5-release-qt5
paths:
- node_modules
- /root/.ccache
- *save-cache

10
scripts/launch-c.in Normal file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
# Xcode generator doesn't include the compiler as the
# first argument, Ninja and Makefiles do. Handle both cases.
if [ "$1" = "${CMAKE_C_COMPILER}" ] ; then
shift
fi
export CCACHE_CPP2=true
exec "${C_LAUNCHER}" "${CMAKE_C_COMPILER}" "$@"

10
scripts/launch-cxx.in Normal file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
# Xcode generator doesn't include the compiler as the
# first argument, Ninja and Makefiles do. Handle both cases.
if [ "$1" = "${CMAKE_CXX_COMPILER}" ] ; then
shift
fi
export CCACHE_CPP2=true
exec "${CXX_LAUNCHER}" "${CMAKE_CXX_COMPILER}" "$@"