mirror of
https://github.com/cuberite/SQLiteCpp.git
synced 2025-08-10 20:56:06 -04:00
175 lines
5.4 KiB
YAML
175 lines
5.4 KiB
YAML
# Copyright (c) 2012-2023 Sebastien Rombauts (sebastien.rombauts@gmail.com)
|
|
|
|
language: cpp
|
|
|
|
# Use Linux unless specified otherwise
|
|
os: linux
|
|
|
|
cache:
|
|
apt: true
|
|
|
|
env:
|
|
global:
|
|
- BUILD_TYPE=Debug
|
|
- ASAN=ON
|
|
- INTERNAL_SQLITE=ON
|
|
- VALGRIND=OFF
|
|
- TESTS=ON
|
|
- SHARED_LIBS=OFF
|
|
|
|
# Build variants (should test a reasonable number of combination of CMake options)
|
|
jobs:
|
|
include:
|
|
|
|
##########################################################################
|
|
# GCC on Linux
|
|
##########################################################################
|
|
|
|
# GCC 11.2.0 (Ubuntu Jammy 22.04)
|
|
- dist: jammy
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
|
|
# Clang 9.3.0 (Ubuntu Focal 20.04)
|
|
- dist: focal
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
|
|
# Coverity static code analysis (Ubuntu Bionic 18.04)
|
|
- dist: bionic
|
|
env:
|
|
- COVERITY_SCAN_PROJECT_NAME=SRombauts/SQLiteCpp
|
|
- COVERITY_SCAN_BRANCH_PATTERN=master
|
|
- COVERITY_SCAN_NOTIFICATION_EMAIL=sebastien.rombauts@gmail.com
|
|
- COVERITY_SCAN_BUILD_COMMAND_PREPEND="cmake ."
|
|
- COVERITY_SCAN_BUILD_COMMAND="make -j8"
|
|
# Encrypted COVERITY_SCAN_TOKEN, created via the "travis encrypt" command using the project repo's public key
|
|
- secure: "Qm4d8NEDPBtYZCYav46uPEvDCtaRsjLXlkVS+C+WCJAPcwXCGkrr96wEi7RWcq2xD86QCh0XiqaPT+xdUmlohOYIovRhaaBmZ1lwIJ4GsG/ZR6xoFr3DYsZ3o4GyXk2vNXNxEl82AC+Xs6e6gkLOV9XRkBcjpVIvoIXgNlKWeGY="
|
|
|
|
# GCC 7.4.0 Debug build with GCov for coverage build (Ubuntu Bionic 18.04)
|
|
- dist: bionic
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
- GCOV=ON
|
|
- COVERALLS=ON
|
|
|
|
# GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer (Ubuntu Bionic 18.04)
|
|
- dist: bionic
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
- ASAN=OFF
|
|
- VALGRIND=ON
|
|
|
|
# GCC 7.4.0 Release build (Ubuntu Bionic 18.04)
|
|
- dist: bionic
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
- BUILD_TYPE=Release
|
|
|
|
# GCC 7.4.0 Shared Libs (Ubuntu Bionic 18.04)
|
|
- dist: bionic
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
- SHARED_LIBS=ON
|
|
|
|
# GCC 7.4.0 test linking with libsqlite3-dev package (Ubuntu Bionic 18.04)
|
|
- dist: bionic
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
- INTERNAL_SQLITE=OFF
|
|
|
|
# GCC 5.4.0 (Ubuntu Xenial 16.04)
|
|
- dist: xenial # Default
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
|
|
# GCC 4.8.4 (Ubuntu Trusty 14.04)
|
|
- dist: trusty
|
|
env:
|
|
- cc=gcc cxx=g++
|
|
- TESTS=OFF
|
|
|
|
##########################################################################
|
|
# Clang on Linux
|
|
##########################################################################
|
|
|
|
# Clang 7.0.0 (Ubuntu Jammy 22.04)
|
|
- dist: jammy
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
|
|
# Clang 7.0.0 (Ubuntu Focal 20.04)
|
|
- dist: focal
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
|
|
# Clang 7.0.0 (Ubuntu Bionic 18.04)
|
|
- dist: bionic
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
|
|
# Clang 7.0.0 (Ubuntu Xenial 16.04)
|
|
- dist: xenial # Default
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
|
|
# Clang 5.0.0 (Ubuntu Trusty 14.04)
|
|
- dist: trusty
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
- TESTS=OFF
|
|
|
|
##########################################################################
|
|
# Clang on OSX
|
|
##########################################################################
|
|
|
|
# XCode 14.2 - Apple clang 14.0.0 - macOS 12.6
|
|
- os: osx
|
|
osx_image: xcode14.2
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
|
|
# Default XCode - Apple clang 9.1.0 - macOS 10.13
|
|
- os: osx
|
|
osx_image: xcode9.4 # Default
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
|
|
# XCode 8.3 - Applec lang 8.1.0 - macOS 10.12
|
|
- os: osx
|
|
osx_image: xcode8.3
|
|
env:
|
|
- cc=clang cxx=clang++
|
|
- TESTS=OFF
|
|
|
|
before_install:
|
|
# Coverity: don't use addons.coverity_scan since it run on every job of the build matrix, which waste resources and exhausts quotas
|
|
# Note: the job dedicated to Coverity need to only run the shell script and then exit (to not try to build and run unit tests etc.)
|
|
- if [[ -n "$COVERITY_SCAN_PROJECT_NAME" ]] ; then curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash ; exit 0 ; fi
|
|
|
|
- if [[ "$INTERNAL_SQLITE" == "OFF" ]]; then sudo apt-get install libsqlite3-dev ; fi
|
|
- if [[ "$VALGRIND" == "ON" ]]; then sudo apt-get install valgrind ; fi
|
|
- if [[ "$COVERALLS" == "ON" ]]; then pip install --user cpp-coveralls ; fi
|
|
|
|
# Set the compiler environment variables properly
|
|
- export CC=${cc}
|
|
- export CXX=${cxx}
|
|
|
|
# scripts to run before build
|
|
before_script:
|
|
- mkdir build
|
|
- cd build
|
|
- cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SHARED_LIBS=$SHARED_LIBS -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=$TESTS -DSQLITECPP_BUILD_TESTS=$TESTS ..
|
|
|
|
# build examples, and run tests (ie make & make test)
|
|
script:
|
|
- cmake --build .
|
|
- export ASAN_OPTIONS=verbosity=1:debug=1
|
|
- if [[ "$TESTS" == "ON" ]]; then ctest --verbose --output-on-failure ; fi
|
|
- if [[ "$VALGRIND" == "ON" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_example1 ; fi
|
|
- if [[ "$VALGRIND" == "ON" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_tests ; fi
|
|
|
|
# generate and publish GCov coveralls results
|
|
after_success:
|
|
- if [[ "$COVERALLS" == "ON" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi
|