start bringing up cirrus-ci

pull/431/head
bradh352 3 years ago
parent abed6353d4
commit 001ed0aaf0
  1. 113
      .cirrus.yml
  2. 48
      ci/build.sh
  3. 9
      ci/distcheck.sh

@ -0,0 +1,113 @@
env:
CIRRUS_CLONE_DEPTH: 1
task:
matrix:
- name: "Debian amd64"
env:
DIST: "DEBIAN"
LC_ALL: "C"
SCAN_BUILD: "scan-build"
MAKE: "make"
container:
image: debian:latest
- name: "Debian arm64"
env:
DIST: "DEBIAN"
LC_ALL: "C"
SCAN_BUILD: "scan-build"
MAKE: "make"
arm_container:
image: debian:latest
- name: "FreeBSD amd64"
env:
DIST: "FREEBSD"
SCAN_BUILD: "scan-build"
MAKE: "gmake"
freebsd_instance:
image_family: freebsd-13-0
- name: "MacOS"
env:
DIST: "MACOS"
SCAN_BUILD: "/usr/local/opt/llvm/bin/scan-build"
MAKE: "make"
macos_instance:
image: big-sur-xcode
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: $DIST != 'FREEBSD'
env:
BUILD_TYPE: "asan"
CONFIG_OPTS: "--enable-debug"
CFLAGS: "-fsanitize=address"
CXXFLAGS: "-fsanitize=address"
LDFLAGS: "-fsanitize=address"
- name: "ANALYZE"
env:
BUILD_TYPE: "analyze"
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: $DIST == 'DEBIAN'
env:
BUILD_TYPE: "valgrind"
TEST_WRAP: "valgrind --leak-check=full"
TEST_FILTER: "--gtest_filter=-*Container*:-*LiveSearchANY*"
install_script:
- |
case "${DIST}" in
DEBIAN)
apt-get update && \
apt-get install -y cmake ninja-build
case "${BUILD_TYPE}" in
asan)
apt-get install -y clang
;;
analyze)
apt-get install -y clang clang-tools
;;
valgrind)
apt-get install -y valgrind
;;
esac
;;
FREEBSD)
# pkg upgrade -y && \
pkg install -y cmake ninja
case "${BUILD_TYPE}" in
asan|analyze)
pkg install -y llvm
;;
autotools)
pkg install -y autoconf automake libtool gmake
;;
esac
;;
MACOS)
brew update && \
brew install ninja cmake
case "${BUILD_TYPE}" in
asan|analyze)
brew install llvm
;;
autotools)
brew install autoconf automake libtool make
;;
esac
;;
esac
script:
- ./ci/build.sh && ./ci/test.sh
- if [ "$BUILD_TYPE" = "normal" ]; then ./ci/distcheck.sh ; fi
- if [ "$BUILD_TYPE" = "coverage" ]; then ./ci/covupload.sh ; fi

@ -1,30 +1,40 @@
#!/bin/sh
set -e
OS=""
if [ "$TRAVIS_OS_NAME" != "" ]; then
OS="$TRAVIS_OS_NAME"
elif [ "$CIRRUS_OS" != "" ]; then
OS="$CIRRUS_OS"
fi
if [ "$BUILD_TYPE" != "cmake" -a "$BUILD_TYPE" != "valgrind" -a "$BUILD_TYPE" != "ios-cmake" ]; then
./buildconf
mkdir atoolsbld
cd atoolsbld
$SCAN_WRAP ../configure --disable-symbol-hiding --enable-expose-statics --enable-maintainer-mode --enable-debug $CONFIG_OPTS
$SCAN_WRAP make
elif [ "$BUILD_TYPE" = "ios-cmake" ] ; then
mkdir cmakebld
cd cmakebld
cmake \
-DCMAKE_BUILD_TYPE=DEBUG \
-DCARES_STATIC=ON \
-DCARES_STATIC_PIC=ON \
-DCARES_BUILD_TESTS=OFF \
-DCMAKE_C_FLAGS=$CFLAGS \
-DCMAKE_CXX_FLAGS=$CXXFLAGS \
-DCMAKE_OSX_SYSROOT=$SYSROOT \
-DCMAKE_OSX_ARCHITECTURES=$ARCHITECTURES \
..
make
else
# Use cmake for valgrind to prevent libtool script wrapping of tests that interfere with valgrind
mkdir cmakebld
cd cmakebld
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -DCARES_BUILD_TESTS=ON ..
make
if [ "$BUILD_TYPE" = "ios-cmake" ]; then
mkdir cmakebld
cd cmakebld
cmake \
-DCMAKE_BUILD_TYPE=DEBUG \
-DCARES_STATIC=ON \
-DCARES_STATIC_PIC=ON \
-DCARES_BUILD_TESTS=OFF \
-DCMAKE_C_FLAGS=$CFLAGS \
-DCMAKE_CXX_FLAGS=$CXXFLAGS \
-DCMAKE_OSX_SYSROOT=$SYSROOT \
-DCMAKE_OSX_ARCHITECTURES=$ARCHITECTURES \
..
make
else
# Use cmake for valgrind to prevent libtool script wrapping of tests that interfere with valgrind
mkdir cmakebld
cd cmakebld
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -DCARES_BUILD_TESTS=ON ..
make
fi
fi

@ -1,7 +1,14 @@
#!/bin/sh
set -e
if [ "$BUILD_TYPE" = "normal" -a "$TRAVIS_OS_NAME" = "linux" ]; then
OS=""
if [ "$TRAVIS_OS_NAME" != "" ]; then
OS="$TRAVIS_OS_NAME"
elif [ "$CIRRUS_OS" != "" ]; then
OS="$CIRRUS_OS"
fi
if [ "$BUILD_TYPE" = "normal" -a "$OS" = "linux" ]; then
# Make distribution tarball
./maketgz 99.98.97
# Extract distribution tarball for building

Loading…
Cancel
Save