From c9379fcf78bd11181421887064fa39f1cf15c5f5 Mon Sep 17 00:00:00 2001 From: iphydf Date: Wed, 11 Dec 2024 11:12:21 +0000 Subject: [PATCH] chore: Fix tsan build on circleci. --- .circleci/cmake-asan | 2 +- .circleci/cmake-tsan | 2 +- .circleci/cmake-ubsan | 2 +- .circleci/config.yml | 65 ++++++++++++++--------------- other/docker/circleci/Dockerfile | 9 ++-- other/docker/circleci/entrypoint.sh | 3 +- 6 files changed, 41 insertions(+), 42 deletions(-) diff --git a/.circleci/cmake-asan b/.circleci/cmake-asan index 724f33e350..bbcd3ee6c7 100755 --- a/.circleci/cmake-asan +++ b/.circleci/cmake-asan @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh set -eu diff --git a/.circleci/cmake-tsan b/.circleci/cmake-tsan index ab98e0de53..6ffb2b0d56 100755 --- a/.circleci/cmake-tsan +++ b/.circleci/cmake-tsan @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh set -eu diff --git a/.circleci/cmake-ubsan b/.circleci/cmake-ubsan index 8275f832ed..791370cbaf 100755 --- a/.circleci/cmake-ubsan +++ b/.circleci/cmake-ubsan @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh set -eu diff --git a/.circleci/config.yml b/.circleci/config.yml index 8692cd0a1b..ac72fb9f69 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 @@ -55,54 +55,34 @@ jobs: //c-toxcore/auto_tests:lossless_packet_test asan: - working_directory: ~/work - docker: - - image: ubuntu + docker: [{ image: alpine:3.19.0 }] steps: - - 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: apk add docker-cli git openssh-client - checkout + - setup_remote_docker - run: git submodule update --init --recursive - - run: CC=clang .circleci/cmake-asan + - run: other/docker/circleci/run asan tsan: - working_directory: ~/work - docker: - - image: ubuntu + docker: [{ image: alpine:3.19.0 }] steps: - - run: *apt_install + - run: apk add docker-cli git openssh-client - checkout + - setup_remote_docker - run: git submodule update --init --recursive - - run: CC=clang .circleci/cmake-tsan + - run: other/docker/circleci/run tsan ubsan: - working_directory: ~/work - docker: - - image: ubuntu + docker: [{ image: alpine:3.19.0 }] steps: - - run: *apt_install + - run: apk add docker-cli git openssh-client - checkout + - setup_remote_docker - 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 +90,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..218fe378f4 100755 --- a/other/docker/circleci/entrypoint.sh +++ b/other/docker/circleci/entrypoint.sh @@ -6,4 +6,5 @@ SANITIZER="${1:-asan}" cp -a /c-toxcore . cd c-toxcore -.circleci/cmake-"$SANITIZER" +ls -lR +.circleci/cmake-"$SANITIZER" || cat /home/builder/c-toxcore/_build/CMakeFiles/CMakeError.log