--- version: 2 workflows: version: 2 program-analysis: jobs: # Dynamic analysis - asan - tsan # Static analysis - clang-tidy - infer - static-analysis jobs: asan: working_directory: ~/work docker: - image: ubuntu steps: - checkout - run: &apt_install apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends clang cmake libconfig-dev libgtest-dev libopus-dev libsodium-dev libvpx-dev llvm-dev ninja-build pkg-config - run: CC=clang .circleci/cmake-asan tsan: working_directory: ~/work docker: - image: ubuntu steps: - checkout - run: *apt_install - run: CC=clang .circleci/cmake-tsan infer: working_directory: ~/work docker: - image: toxchat/infer steps: - run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git libopus-dev libsodium-dev libvpx-dev pkg-config - checkout - run: infer --no-progress-bar -- cc toxav/*.c toxcore/*.c $(pkg-config --cflags opus vpx) static-analysis: working_directory: ~/work docker: - image: ubuntu steps: - checkout - run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends clang cppcheck g++ libconfig-dev libgtest-dev libopus-dev libsodium-dev libvpx-dev llvm - run: other/analysis/check_logger_levels - run: other/analysis/run-check-recursion - run: other/analysis/run-clang - run: other/analysis/run-clang-analyze - run: other/analysis/run-cppcheck - run: other/analysis/run-gcc clang-tidy: working_directory: ~/work docker: - image: ubuntu steps: - checkout - run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends build-essential clang-tidy-11 cmake libconfig-dev libopus-dev libsodium-dev libvpx-dev - run: cmake . -B_build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - run: other/analysis/run-clang-tidy || other/analysis/run-clang-tidy || other/analysis/run-clang-tidy