Files
MapLibreParticleLab/circle.yml
Bruno de Oliveira Abinader c163402f64 [build] Added Linux GCC 4.9 CI bot
2017-07-12 20:42:29 +03:00

520 lines
16 KiB
YAML

version: 2
workflows:
version: 2
default:
jobs:
- clang-tidy
- android-debug-arm-v7
- android-release-all
- node4-clang39-release
- node6-clang39-release
- node6-clang39-debug
- linux-clang39-debug
- linux-gcc4.9-debug
- linux-gcc5-debug-coverage
- linux-gcc5-release-qt4
- linux-gcc5-release-qt5
jobs:
# ------------------------------------------------------------------------------
clang-tidy:
docker:
- image: mbgl/ci:r3-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
BUILDTYPE: Debug
branches:
ignore:
- master
steps:
- checkout
- restore_cache:
key: v1-clang-tidy
paths:
- node_modules
- /root/.ccache
- run:
name: Fetch 'origin/master' branch
command: git fetch origin master:refs/remotes/origin/master
- run:
name: Generate compilation database
command: make compdb
- run:
name: Run Clang checks
command: make check
- save_cache:
key: v1-clang-tidy
paths:
- node_modules
- /root/.ccache
# ------------------------------------------------------------------------------
android-debug-arm-v7:
docker:
- image: mbgl/ci:r3-android-ndk-r15-gradle
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
BUILDTYPE: Debug
steps:
- checkout
- restore_cache:
key: v1-android-debug-arm-v7
paths:
- node_modules
- /root/.ccache
- run:
name: Build libmapbox-gl.so for arm-v7
command: make android-lib-arm-v7
- run:
name: Compile Core tests for arm-v7
command: make android-test-lib-arm-v7
- run:
name: Test phone module
command: make run-android-unit-test
- run:
name: Test wear module
command: make run-android-wear-unit-test
- run:
name: Generate Espresso sanity tests
command: make test-code-android
- run:
name: Check Java code style
command: make android-checkstyle
- run:
name: Build Test APK
command: |
echo "${MAPBOX_DEVELOPER_CONFIG_XML}" > platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml
make android-ui-test-arm-v7
- run:
name: Log in to Google Cloud Platform
shell: /bin/bash -euo pipefail
command: |
echo "${GCLOUD_SERVICE_ACCOUNT_JSON}" > secret.json
gcloud auth activate-service-account --key-file secret.json --project android-gl-native
rm secret.json
- run:
name: Run instrumentation tests on Firebase
no_output_timeout: 1200
shell: /bin/bash -euo pipefail
command: |
gcloud firebase test android models list
(gcloud firebase test android run --type instrumentation \
--app platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug.apk \
--test platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug-androidTest.apk \
--device-ids shamu --os-version-ids 22 --locales en --orientations portrait --timeout 15m \
--test-targets "package com.mapbox.mapboxsdk.testapp.style" 2>&1 | tee firebase.log) || EXIT_CODE=$?
FIREBASE_TEST_BUCKET=$(sed -n 's|^.*\[https://console.developers.google.com/storage/browser/\([^]]*\).*|gs://\1|p' firebase.log)
echo "Downloading from: ${FIREBASE_TEST_BUCKET}"
gsutil -m cp -n -R -Z "$FIREBASE_TEST_BUCKET*" platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk
echo "Try running ndk-stack on downloaded logcat to symbolicate the stacktraces:"
find platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk -type f -name "logcat" -print0 | \
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: .
# ------------------------------------------------------------------------------
android-release-all:
docker:
- image: mbgl/ci:r3-android-ndk-r15-gradle
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
BUILDTYPE: Release
steps:
- checkout
- restore_cache:
key: v1-android-release-all
paths:
- node_modules
- /root/.ccache
- run:
name: Generate Maven credentials
shell: /bin/bash -euo pipefail
command: |
aws s3 cp s3://mapbox/android/signing-credentials/secring.gpg platform/android/MapboxGLAndroidSDK/secring.gpg
echo "NEXUS_USERNAME=$PUBLISH_NEXUS_USERNAME
NEXUS_PASSWORD=$PUBLISH_NEXUS_PASSWORD
signing.keyId=$SIGNING_KEYID
signing.password=$SIGNING_PASSWORD
signing.secretKeyRingFile=secring.gpg" >> platform/android/MapboxGLAndroidSDK/gradle.properties
- run:
name: Build package
command: make apackage
- store_artifacts:
path: platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk
destination: .
- deploy:
name: Show statistics
command: |
[ "${CIRCLE_BRANCH}" == "master" ] && export CLOUDWATCH=true
platform/android/scripts/metrics.sh
- deploy:
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:
docker:
- image: mbgl/ci:r3-linux-clang-3.9-node-4
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
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)
DISPLAY: :0
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: |
source scripts/circle_setup.sh
mapbox_install_logbt
mapbox_install_apitrace
mapbox_export_mesa_library_path
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
# ------------------------------------------------------------------------------
node6-clang39-release:
docker:
- image: mbgl/ci:r3-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
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)
DISPLAY: :0
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: |
source scripts/circle_setup.sh
mapbox_install_logbt
mapbox_install_apitrace
mapbox_export_mesa_library_path
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
# ------------------------------------------------------------------------------
node6-clang39-debug:
docker:
- image: mbgl/ci:r3-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
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)
DISPLAY: :0
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: |
source scripts/circle_setup.sh
mapbox_install_logbt
mapbox_install_apitrace
mapbox_export_mesa_library_path
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
# ------------------------------------------------------------------------------
linux-clang39-debug:
docker:
- image: mbgl/ci:r3-linux-clang-3.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 6
BUILDTYPE: Debug
WITH_EGL: 1
DISPLAY: :0
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: |
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-clang39-debug
paths:
- node_modules
- /root/.ccache
# ------------------------------------------------------------------------------
linux-gcc4.9-debug:
docker:
- image: mbgl/ci:r3-linux-gcc-4.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 2
BUILDTYPE: Debug
WITH_EGL: 1
WITH_CXX11ABI: 0
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
# ------------------------------------------------------------------------------
linux-gcc5-debug-coverage:
docker:
- image: mbgl/ci:r3-linux-gcc-5
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
JOBS: 2
BUILDTYPE: Debug
WITH_EGL: 1
WITH_COVERAGE: 1
DISPLAY: :0
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: |
source scripts/circle_setup.sh
mapbox_export_mesa_library_path
xvfb-run --server-args="-screen 0 1024x768x24" \
make run-test
- run:
name: Upload coverage results to coveralls
command: |
source scripts/circle_setup.sh
platform/linux/scripts/coveralls.sh
- save_cache:
key: v1-linux-gcc5-debug-coverage
paths:
- node_modules
- /root/.ccache
# ------------------------------------------------------------------------------
linux-gcc5-release-qt4:
docker:
- image: mbgl/ci:r3-linux-gcc-5-qt-4
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
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
- run:
name: Run memory-load tests
command: |
source scripts/circle_setup.sh
mapbox_export_mesa_library_path
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
# ------------------------------------------------------------------------------
linux-gcc5-release-qt5:
docker:
- image: mbgl/ci:r3-linux-gcc-5-qt-5
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
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
- run:
name: Build qt-docs
command: make qt-docs
- run:
name: Run valgrind-backed tests
environment:
JOBS: 1 # https://github.com/mapbox/mapbox-gl-native/issues/9108
command: |
source scripts/circle_setup.sh
mapbox_export_mesa_library_path
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