| env: |
| CIRRUS_CLONE_DEPTH: 1 |
| CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -DCARES_BUILD_TESTS=ON" |
| |
| task: |
| matrix: |
| - name: "Debian amd64" |
| env: |
| DIST: "DEBIAN" |
| LC_ALL: "C" |
| SCAN_BUILD: "scan-build" |
| MAKE: "make" |
| BUILD_ASAN: "yes" |
| BUILD_UBSAN: "yes" |
| BUILD_LSAN: "yes" |
| BUILD_VALGRIND: "yes" |
| BUILD_COVERAGE: "yes" |
| BUILD_ANALYZE: "yes" |
| container: |
| image: debian:latest |
| - name: "Debian arm64" |
| env: |
| DIST: "DEBIAN-ARM" |
| LC_ALL: "C" |
| SCAN_BUILD: "scan-build" |
| MAKE: "make" |
| BUILD_ASAN: "yes" |
| BUILD_UBSAN: "yes" |
| BUILD_LSAN: "yes" |
| BUILD_ANALYZE: "yes" |
| arm_container: |
| image: debian:latest |
| - name: "FreeBSD amd64" |
| env: |
| DIST: "FREEBSD" |
| SCAN_BUILD: "scan-build" |
| MAKE: "gmake" |
| BUILD_ANALYZE: "yes" |
| freebsd_instance: |
| image_family: freebsd-13-1 |
| - name: "MacOS" |
| env: |
| DIST: "MACOS" |
| SCAN_BUILD: "/opt/homebrew/opt/llvm/bin/scan-build-py" |
| MAKE: "make" |
| BUILD_ASAN: "yes" |
| BUILD_ANALYZE: "yes" |
| macos_instance: |
| image: ghcr.io/cirruslabs/macos-ventura-xcode:latest |
| - name: "iOS" |
| env: |
| DIST: "iOS" |
| MAKE: "make" |
| CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -DCARES_BUILD_TESTS=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 -DCMAKE_OSX_ARCHITECTURES=armv7;armv7s;arm64" |
| CFLAGS: "-arch armv7 -arch armv7s -arch arm64 -miphoneos-version-min=10.0" |
| CONFIG_OPTS: "--host=arm-apple-darwin10 --disable-tests" |
| macos_instance: |
| image: ghcr.io/cirruslabs/macos-ventura-xcode:latest |
| matrix: |
| - name: "CMAKE" |
| env: |
| BUILD_TYPE: "cmake" |
| - name: "AUTOTOOLS" |
| env: |
| BUILD_TYPE: "autotools" |
| - name: "ASAN" |
| # FreeBSD just hangs trying to run tests, think it may be trying to run leak sanitizer |
| only_if: $BUILD_ASAN == 'yes' |
| env: |
| BUILD_TYPE: "asan" |
| CC: "clang" |
| CONFIG_OPTS: "--enable-debug" |
| CFLAGS: "-fsanitize=address" |
| CXXFLAGS: "-fsanitize=address" |
| LDFLAGS: "-fsanitize=address -lpthread" |
| - name: "UBSAN" |
| # FreeBSD just hangs trying to run tests, think it may be trying to run leak sanitizer |
| only_if: $BUILD_UBSAN == 'yes' |
| env: |
| BUILD_TYPE: "ubsan" |
| CC: "clang" |
| CONFIG_OPTS: "--enable-debug" |
| CFLAGS: "-fsanitize=undefined -fno-sanitize-recover" |
| CXXFLAGS: "-fsanitize=undefined -fno-sanitize-recover" |
| LDFLAGS: "-fsanitize=undefined -lpthread" |
| - name: "LSAN" |
| # lsan only works on debian x86/x64 |
| only_if: $BUILD_LSAN == 'yes' |
| env: |
| BUILD_TYPE: "lsan" |
| CC: "clang" |
| CONFIG_OPTS: "--enable-debug" |
| CFLAGS: "-fsanitize=leak" |
| CXXFLAGS: "-fsanitize=leak" |
| LDFLAGS: "-fsanitize=leak -lpthread" |
| - name: "ANALYZE" |
| only_if: $BUILD_ANALYZE == 'yes' |
| env: |
| BUILD_TYPE: "analyze" |
| CC: "clang" |
| SCAN_WRAP: "${SCAN_BUILD} -v --status-bugs" |
| CONFIG_OPTS: "--enable-debug --disable-tests" |
| - name: "VALGRIND" |
| # FreeBSD just hangs trying to run tests, think it may be trying to run leak sanitizer |
| only_if: $BUILD_VALGRIND == 'yes' |
| env: |
| BUILD_TYPE: "valgrind" |
| TEST_WRAP: "valgrind --leak-check=full" |
| TEST_FILTER: "--gtest_filter=-*Container*:-*LiveSearchANY*" |
| - name: "COVERAGE" |
| only_if: $BUILD_COVERAGE == 'yes' |
| env: |
| BUILD_TYPE: "coverage" |
| CI_NAME: "cirrus-ci" |
| CI_BUILD_NUMBER: "${CIRRUS_TASK_ID}" |
| CI_BUILD_URL: "https://cirrus-ci.com/task/${CIRRUS_TASK_ID}" |
| CI_BRANCH: "${CIRRUS_BRANCH}" |
| CI_PULL_REQUEST: "${CIRRUS_PR}" |
| COVERALLS_REPO_TOKEN: "ENCRYPTED[a46bc6ca908e9e74f102c686cde67cae21d3e792dff46a60e860d1179d9349e8eb5a529132d0effefebdb0dbc3f95810]" |
| CONFIG_OPTS: "--enable-debug --disable-shared --enable-code-coverage --enable-tests" |
| |
| install_script: |
| - | |
| case "${DIST}" in |
| DEBIAN*) |
| apt-get update && \ |
| apt-get install -y cmake ninja-build autoconf automake libtool g++ pip |
| case "${BUILD_TYPE}" in |
| asan|lsan|ubsan) |
| apt-get install -y clang |
| ;; |
| analyze) |
| apt-get install -y clang clang-tools |
| ;; |
| valgrind) |
| apt-get install -y valgrind |
| ;; |
| coverage) |
| apt-get install -y lcov git |
| pip3 install --user cpp-coveralls |
| ;; |
| esac |
| ;; |
| FREEBSD) |
| # pkg upgrade -y && \ |
| pkg install -y cmake ninja |
| case "${BUILD_TYPE}" in |
| asan|analyze|ubsan|lsan) |
| pkg install -y llvm autoconf automake libtool gmake |
| ;; |
| autotools) |
| pkg install -y autoconf automake libtool gmake |
| ;; |
| esac |
| ;; |
| MACOS|iOS) |
| brew update && \ |
| brew install ninja cmake |
| case "${BUILD_TYPE}" in |
| asan|ubsan|lsan|analyze) |
| brew install llvm autoconf automake libtool make |
| ;; |
| autotools) |
| brew install autoconf automake libtool make |
| ;; |
| esac |
| ;; |
| esac |
| |
| script: |
| - ./ci/build.sh |
| - ./ci/test.sh |
| - if [ "$BUILD_TYPE" = "autotools" -a "$DIST" = "DEBIAN" ]; then ./ci/distcheck.sh ; fi |
| - if [ "$BUILD_TYPE" = "coverage" ]; then ./ci/covupload.sh ; fi |
| |