# Description of the different continuous integration test setups running on the CI servers There are 5 CI servers that are running along with a couple additional checks GitHub Actions, Appveyor, Circle-CI, Azure and Drone. ## Appveyor tests - Cygwin builds ## Azure tests Azure pipelines is currently running the majority of CI tests. The main tests for pull requests and pushes targeting the main and develop branches are: - Default Ubuntu 20.04 build and test using GCC with MPI and encryption support enabled - GCC 8 build and test running on Linux with MPI and encryption support enabled - Clang 13 build and test running on Linux - Clang 7 build and test running on Linux - XCode 10.2: Test a recent XCode compiler with the Shared API library tests - XCode build and test using the newest version of macOS that is available for CI builds - XCode build and test using the oldest version of macOS still supported by Apple - MSVC2019 32 bit build and test without the webserver component - MSVC2019 64 bit build and test - MSVC2022 64 bit build and test using the C++20 standard There are also a few tests run daily: - Ubuntu 20.04 build using default package versions that runs the larger "daily" CI tests - Ubuntu 20.04 build using default package versions that uses ZeroMQ as a subproject instead of installing it with a package manager - MSVC2022 64 bit build and test using Boost 1.74 ## Circle CI All PR's and branches trigger a set of builds using Docker images on Circle-CI. - Clang-MSAN - runs the clang memory sanitizer - Clang-ASAN - runs the clang address sanitizer and undefined behavior sanitizer - Clang-TSAN - runs the clang thread sanitizer - install1 - build and install and link with the C shared library, C\++ shared library, C\++98 library and C\++ apps library, and run some tests linking to the installed libraries - install2 - build and install and link with the C shared library, and C\++98 library only and run some tests linking with the installed library ### Benchmark tests Circle ci also runs a benchmark test that runs every couple days. Eventually this will form the basis of benchmark regression test. ## GitHub Actions GitHub Actions is used for various release related builds, and some special CI configurations that don't need to run often. - Static analyzers - Building pre-compiled packages for releases - Building Docker images - Daily build of benchmark binaries - Daily build of the release artifacts using code in the develop branch - Daily MSYS2 CI builds using both MinGW and MSYS makefiles - Daily code coverage build and test ## Drone - 64 bit and 32 bit builds on ARM processors ## Cirrus CI - FreeBSD 12.2 build ## Read the docs - Build the docs for the website and test on every commit ## Codacy There are some static analysis checks run with Codacy. While it is watched it is not always required to pass.