--- /dev/null
+env:
+ LANG: C
+ DEFAULT_CONFIG_OPTS: --enable-debug --without-libstatgrab
+
+
+###
+# make distcheck and other sanity checks
+#
+relase_ready_task:
+ container:
+ image: collectd/ci:stretch_amd64
+ lint_script:
+ - /checks/check-bashisms.sh
+ - /checks/check-pod.sh
+ configure_script:
+ - ./build.sh
+ - ./configure $DEFAULT_CONFIG_OPTS
+ checks_script:
+ - make -s distcheck
+
+###
+# Default toolchain and build flags use in deb packages, on a range of Debian
+# and Ubuntu releases (+ Debian/unstable)
+# Most should succeed, and PRs shouldn't break them.
+#
+debian_default_toolchain_task:
+ matrix:
+ - allow_failures: true
+ skip_notifications: true
+ container:
+ image: collectd/ci:wheezy_amd64 # TODO: fix this platform
+ - allow_failures: false
+ container:
+ image: collectd/ci:jessie_amd64
+ - allow_failures: false
+ container:
+ image: collectd/ci:stretch_amd64
+ - allow_failures: false
+ container:
+ image: collectd/ci:stretch_i386
+ - allow_failures: false
+ container:
+ image: collectd/ci:trusty_amd64
+ - allow_failures: false
+ container:
+ image: collectd/ci:xenial_amd64
+ # debian/unstable is expected to fail
+ - allow_failures: true
+ skip_notifications: true
+ only_if: $CIRRUS_BRANCH == 'master'
+ container:
+ image: collectd/ci:sid_amd64
+ configure_script:
+ - ./build.sh
+ - gcc --version
+ - >
+ ./configure CC=gcc $DEFAULT_CONFIG_OPTS
+ CFLAGS="$(dpkg-buildflags --get CFLAGS)"
+ CPPLAGS="$(dpkg-buildflags --get CPPFLAGS)"
+ LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"
+ build_script:
+ - make -sk
+ tests_script:
+ - make -sk check
+ - /checks/check-built-plugins.sh
+
+###
+# Default toolchain and build flags use in RPM packages, on a range of RedHat
+# and Fedora releases (+ Fedora/rawhide)
+# Most should succeed, and PRs shouldn't break them.
+#
+redhat_default_toolchain_task:
+ matrix:
+ - allow_failures: false
+ skip_notifications: false
+ container:
+ image: collectd/ci:el6_x86_64
+ - allow_failures: true
+ skip_notifications: true
+ container:
+ image: collectd/ci:el7_x86_64 # TODO: fix this platform
+ - allow_failures: true
+ skip_notifications: true
+ container:
+ image: collectd/ci:fedora26_x86_64
+ - allow_failures: true
+ skip_notifications: true
+ container:
+ image: collectd/ci:fedora28_x86_64
+ # fedora/rawhide is expected to fail
+ - allow_failures: true
+ skip_notifications: true
+ only_if: $CIRRUS_BRANCH == 'master'
+ container:
+ image: collectd/ci:fedora_rawhide_x86_64
+ configure_script:
+ - ./build.sh
+ - gcc --version
+ - ./configure CC=gcc $DEFAULT_CONFIG_OPTS CFLAGS="$(rpm --eval '%optflags')"
+ build_script:
+ - make -sk
+ tests_script:
+ - make -sk check
+ - /checks/check-built-plugins.sh
+
+
+###
+# Misc non-standard build environment & options on most recent released debian
+# version.
+# Some are expected to fail, others should always pass
+non_standard_toolchains_task:
+ container:
+ image: collectd/ci:stretch_amd64
+ only_if: $CIRRUS_PR == ''
+
+ matrix:
+
+ # build using clang with default build flags, should always pass
+ - env:
+ LABEL: clang
+ allow_failures: true # TODO: fix this platform
+ skip_notifications: true
+ configure_script:
+ - ./build.sh
+ - clang --version
+ - >
+ ./configure CC=clang
+ $DEFAULT_CONFIG_OPTS
+ CFLAGS="$(dpkg-buildflags --get CFLAGS)"
+ CPPLAGS="$(dpkg-buildflags --get CPPFLAGS)"
+ LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"
+ build_script:
+ - make -sk
+ tests_script:
+ - make -sk check
+
+ # build against libstatgrab, should always pass
+ - env:
+ LABEL: statgrab
+ allow_failures: false
+ skip_notifications: false
+ configure_script:
+ - ./build.sh
+ - gcc --version
+ - >
+ ./configure --with-libstatgrab --enable-debug
+ CFLAGS="$(dpkg-buildflags --get CFLAGS)"
+ CPPLAGS="$(dpkg-buildflags --get CPPFLAGS)"
+ LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"
+ build_script:
+ - make -sk
+ tests_script:
+ - >
+ for i in cpu disk interface load memory swap users; do
+ if ! $(ldd ".libs/${i}.so" 2>/dev/null | grep -q 'libstatgrab.so'); then
+ echo "plugin $i NOT linked against libstatgrab"
+ exit 1
+ fi
+ done
+
+ # build against musl-libc using gcc wrapper, expected to fail
+ - env:
+ LABEL: musl libc
+ allow_failures: true
+ skip_notifications: true
+ configure_script:
+ - ./build.sh
+ - musl-gcc --version
+ - >
+ ./configure CC=musl-gcc
+ $DEFAULT_CONFIG_OPTS
+ CFLAGS="$(dpkg-buildflags --get CFLAGS)"
+ CPPLAGS="$(dpkg-buildflags --get CPPFLAGS)"
+ LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"
+ build_script:
+ - make -sk
+ tests_script:
+ - make -sk check
+
+ # build using clang with a collection of strict build flags, will most
+ # probably always fail
+ - env:
+ LABEL: clang strict
+ allow_failures: true
+ skip_notifications: true
+ configure_script:
+ - ./build.sh
+ - clang --version
+ - >
+ ./configure CC=clang
+ $DEFAULT_CONFIG_OPTS
+ CFLAGS='-Wall
+ -Wno-error
+ -Wextra
+ -Wformat=2
+ -Wformat-security
+ -Wformat-nonliteral
+ -Wmissing-include-dirs
+ -Wold-style-definition
+ -Wpointer-arith
+ -Winit-self
+ -Wmissing-prototypes
+ -Wimplicit-function-declaration
+ -Wmissing-declarations
+ -Wstrict-prototypes
+ -Wmissing-noreturn
+ -Wshadow
+ -Wendif-labels
+ -Wwrite-strings
+ -Wno-unused-parameter
+ -Wno-missing-field-initializers
+ -Wdate-time
+ -Wnested-externs
+ -Wno-typedef-redefinition
+ -Wno-gnu-variable-sized-type-not-at-end'
+ build_script:
+ - make -sk
+ tests_script:
+ - make -sk check
+
+###
+# Build using a range of compilers, available in debian/unstable. NB: might
+# fail because of changes to the distro, not the compiler used.
+#
+bleeding_edge_compilers_task:
+ container:
+ image: collectd/ci:sid_amd64
+ only_if: $CIRRUS_BRANCH == 'master'
+ allow_failures: true
+ skip_notifications: true
+ env:
+ matrix:
+ CC: gcc-7
+ CC: gcc-8
+ CC: clang-6.0
+ CC: clang-7
+ CC: clang-8
+ CC: clang-9
+ configure_script:
+ - ./build.sh
+ - $CC --version
+ - >
+ ./configure CC=$CC
+ $DEFAULT_CONFIG_OPTS
+ CFLAGS="$(dpkg-buildflags --get CFLAGS)"
+ CPPLAGS="$(dpkg-buildflags --get CPPFLAGS)"
+ LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"
+ build_script:
+ - make -sk
+ tests_script:
+ - make -sk check