summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <tmpsantos@gmail.com>2019-11-27 00:31:00 +0200
committerThiago Marcos P. Santos <tmpsantos@gmail.com>2019-11-27 18:32:58 +0200
commit2a65301f0990825dbcaf11c4a88e08dc974a511a (patch)
tree824fc94a7560f79bcbcae415113d06eee3cc6dcd
parentcf160a24d0380e8c8125d79cfb15991c19f50d98 (diff)
downloadqtlocation-mapboxgl-2a65301f0990825dbcaf11c4a88e08dc974a511a.tar.gz
[build] Get the bots enforcing the binary size
Release bots will build and persist the build targets other workspaces. A bot will collect all the binaries and check the size.
-rw-r--r--circle.yml107
1 files changed, 80 insertions, 27 deletions
diff --git a/circle.yml b/circle.yml
index 65096d083a..447b98f0a4 100644
--- a/circle.yml
+++ b/circle.yml
@@ -10,33 +10,32 @@ workflows:
name: next-android-armeabi-v7a-release
executor_name: ubuntu-disco
target_is_android: true
- config_params: '-G Ninja -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=armeabi-v7a'
+ config_params: '-G Ninja -DCMAKE_INSTALL_PREFIX=workspace/$CIRCLE_JOB -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=armeabi-v7a'
+ install: true
- next-build-template:
name: next-android-arm64-v8a-release
executor_name: ubuntu-disco
target_is_android: true
- requires:
- - next-android-armeabi-v7a-release
- config_params: '-G Ninja -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=arm64-v8a'
+ config_params: '-G Ninja -DCMAKE_INSTALL_PREFIX=workspace/$CIRCLE_JOB -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=arm64-v8a'
+ install: true
- next-build-template:
name: next-android-x86-release
executor_name: ubuntu-disco
target_is_android: true
- requires:
- - next-android-armeabi-v7a-release
- config_params: '-G Ninja -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=x86'
+ config_params: '-G Ninja -DCMAKE_INSTALL_PREFIX=workspace/$CIRCLE_JOB -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=x86'
+ install: true
- next-build-template:
name: next-android-x86_64-release
executor_name: ubuntu-disco
target_is_android: true
- requires:
- - next-android-armeabi-v7a-release
- config_params: '-G Ninja -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=x86_64'
+ config_params: '-G Ninja -DCMAKE_INSTALL_PREFIX=workspace/$CIRCLE_JOB -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_CCACHE=/usr/bin/ccache -DANDROID_ABI=x86_64'
+ install: true
- next-build-template:
name: next-linux-gcc8-release
executor_name: ubuntu-disco
target_is_linux: true
- config_params: '-G Ninja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8'
+ config_params: '-G Ninja -DCMAKE_INSTALL_PREFIX=workspace/$CIRCLE_JOB -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8'
+ install: true
- next-build-template:
name: next-linux-gcc4.9-release
executor_name: ubuntu-disco
@@ -57,7 +56,16 @@ workflows:
name: next-linux-clang8-release
executor_name: ubuntu-disco
target_is_linux: true
- config_params: '-G Ninja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=clang-8 -DCMAKE_CXX_COMPILER=clang++-8'
+ requires:
+ - next-android-armeabi-v7a-release
+ - next-android-arm64-v8a-release
+ - next-android-x86-release
+ - next-android-x86_64-release
+ - next-linux-gcc8-release
+ - next-macos-xcode11-release
+ config_params: '-G Ninja -DCMAKE_INSTALL_PREFIX=workspace/$CIRCLE_JOB -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=clang-8 -DCMAKE_CXX_COMPILER=clang++-8'
+ install: true
+ binary_size_metrics: true
- next-build-template:
name: next-FIXME-linux-asan
executor_name: ubuntu-disco
@@ -104,7 +112,8 @@ workflows:
name: next-macos-xcode11-release
executor_name: macos-11_0_0
target_is_macos: true
- config_params: '-G Ninja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache'
+ config_params: '-G Ninja -DCMAKE_INSTALL_PREFIX=workspace/$CIRCLE_JOB -DCMAKE_CXX_COMPILER_LAUNCHER=ccache'
+ install: true
- next-build-template:
name: next-macos-xcode11-debug
executor_name: macos-11_0_0
@@ -250,6 +259,41 @@ commands:
ccache --zero-stats --max-size=2G
cmake --build build -j 8 << parameters.build_params >>
ccache --show-stats
+ next-install:
+ steps:
+ - run:
+ name: Install
+ command: |
+ cmake --build build --target install/strip
+ - persist_to_workspace:
+ root: workspace
+ paths:
+ - '*'
+ next-test:
+ parameters:
+ runtime_wrapper:
+ type: string
+ test_params:
+ type: string
+ steps:
+ - run:
+ name: Test
+ command: |
+ cd build
+ << parameters.runtime_wrapper >> ctest -V << parameters.test_params >>
+ next-metrics:
+ parameters:
+ step_name:
+ type: string
+ runtime_wrapper:
+ type: string
+ metrics_params:
+ type: string
+ steps:
+ - run:
+ name: << parameters.step_name >>
+ command: |
+ << parameters.runtime_wrapper >> build/mbgl-render-test-runner << parameters.metrics_params >>
next-save:
steps:
- save_cache:
@@ -268,6 +312,8 @@ commands:
if [ -f clang-tidy.log ]; then cp clang-tidy.log /tmp/tests/clang-tidy; fi
mkdir -p /tmp/tests/render
if ls render-test/*.html 1> /dev/null 2>&1; then cp render-test/*.html /tmp/tests/render; fi
+ mkdir -p /tmp/tests/metrics
+ if ls metrics/*.html 1> /dev/null 2>&1; then cp metrics/*.html /tmp/tests/metrics; fi
mkdir -p /tmp/tests/coredumps
if ls core* 1> /dev/null 2>&1; then cp core* /tmp/tests/coredumps; fi
mkdir -p /tmp/tests/valgrind
@@ -275,18 +321,6 @@ commands:
- store_artifacts:
path: /tmp/tests
destination: tests
- next-test:
- parameters:
- test_wrapper:
- type: string
- test_params:
- type: string
- steps:
- - run:
- name: Test
- command: |
- cd build
- << parameters.test_wrapper >> ctest -V << parameters.test_params >>
npm-install:
steps:
- run:
@@ -736,6 +770,12 @@ jobs:
target_is_macos:
type: boolean
default: false
+ install:
+ type: boolean
+ default: false
+ binary_size_metrics:
+ type: boolean
+ default: false
executor: << parameters.executor_name >>
steps:
- checkout
@@ -755,7 +795,7 @@ jobs:
- next-build:
build_params: << parameters.build_params >>
- next-test:
- test_wrapper: 'xvfb-run -s -noreset'
+ runtime_wrapper: 'xvfb-run -s -noreset'
test_params: << parameters.test_params >>
- when:
condition: << parameters.target_is_macos >>
@@ -766,8 +806,21 @@ jobs:
- next-build:
build_params: << parameters.build_params >>
- next-test:
- test_wrapper: ''
+ runtime_wrapper: ''
test_params: << parameters.test_params >>
+ - when:
+ condition: << parameters.install >>
+ steps:
+ - next-install
+ - when:
+ condition: << parameters.binary_size_metrics >>
+ steps:
+ - attach_workspace:
+ at: workspace
+ - next-metrics:
+ step_name: 'Binary Size Metrics'
+ runtime_wrapper: 'xvfb-run -s -noreset'
+ metrics_params: '-p metrics/binary-size.json'
- next-save
# ------------------------------------------------------------------------------