diff --git a/.circleci/config.yml b/.circleci/config.yml index 8692cd0a1b..f0dab11c1c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,7 +12,7 @@ workflows: # - bazel-tsan # Dynamic analysis with CMake - asan - # - tsan + - tsan - ubsan # Static analysis - clang-analyze @@ -60,27 +60,15 @@ jobs: - image: ubuntu steps: - - run: &apt_install + - run: &apt_install_git apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates - clang - cmake git - libbenchmark-dev - libconfig-dev - libgmock-dev - libgtest-dev - libopus-dev - libsodium-dev - libvpx-dev - llvm-dev - ninja-build - pkg-config - checkout - run: git submodule update --init --recursive - - run: CC=clang .circleci/cmake-asan + - run: other/docker/circleci/run asan tsan: working_directory: ~/work @@ -91,7 +79,7 @@ jobs: - run: *apt_install - checkout - run: git submodule update --init --recursive - - run: CC=clang .circleci/cmake-tsan + - run: other/docker/circleci/run tsan ubsan: working_directory: ~/work @@ -102,7 +90,7 @@ jobs: - run: *apt_install - checkout - run: git submodule update --init --recursive - - run: CC=clang .circleci/cmake-ubsan + - run: other/docker/circleci/run ubsan static-analysis: working_directory: ~/work @@ -110,7 +98,24 @@ jobs: - image: ubuntu steps: - - run: *apt_install + - run: &apt_install + apt-get update && + DEBIAN_FRONTEND=noninteractive + apt-get install -y + ca-certificates + clang + cmake + git + libbenchmark-dev + libconfig-dev + libgmock-dev + libgtest-dev + libopus-dev + libsodium-dev + libvpx-dev + llvm-dev + ninja-build + pkg-config - run: apt-get install -y --no-install-recommends ca-certificates diff --git a/other/docker/circleci/Dockerfile b/other/docker/circleci/Dockerfile index 3b23eed793..dd9f5ddeb6 100644 --- a/other/docker/circleci/Dockerfile +++ b/other/docker/circleci/Dockerfile @@ -1,11 +1,12 @@ ################################################ # cmake-asan -FROM ubuntu:20.04 +FROM ubuntu:24.04 RUN apt-get update && \ DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \ clang \ cmake \ + libclang-rt-dev \ libconfig-dev \ libgmock-dev \ libgtest-dev \ @@ -20,12 +21,12 @@ RUN apt-get update && \ COPY entrypoint.sh / RUN ["chmod", "755", "/entrypoint.sh"] +ENTRYPOINT ["/entrypoint.sh"] WORKDIR /home/builder -RUN groupadd -r -g 1000 builder \ - && useradd --no-log-init -r -g builder -u 1000 builder \ +RUN groupadd -r -g 987 builder \ + && useradd --no-log-init -r -g builder -u 987 builder \ && chown builder:builder /home/builder USER builder ENV CC=clang CXX=clang++ -ENTRYPOINT ["/entrypoint.sh"] diff --git a/other/docker/circleci/entrypoint.sh b/other/docker/circleci/entrypoint.sh index 971759235f..15242d264a 100755 --- a/other/docker/circleci/entrypoint.sh +++ b/other/docker/circleci/entrypoint.sh @@ -6,4 +6,4 @@ SANITIZER="${1:-asan}" cp -a /c-toxcore . cd c-toxcore -.circleci/cmake-"$SANITIZER" +.circleci/cmake-"$SANITIZER" || cat /home/builder/c-toxcore/_build/CMakeFiles/CMakeError.log