From 4729bf3aa3ded42e396f921cd526d0c6d69b6adc Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Mon, 25 Mar 2024 21:45:29 -0400 Subject: [PATCH] add ASAN CI "platform" --- .cicd/platforms/asan.Dockerfile | 37 +++++++++++++++++++++++++++++++++ .github/workflows/build.yaml | 1 + 2 files changed, 38 insertions(+) create mode 100644 .cicd/platforms/asan.Dockerfile diff --git a/.cicd/platforms/asan.Dockerfile b/.cicd/platforms/asan.Dockerfile new file mode 100644 index 0000000000..23ac698b14 --- /dev/null +++ b/.cicd/platforms/asan.Dockerfile @@ -0,0 +1,37 @@ +# syntax=docker/dockerfile:1 +FROM ubuntu:jammy +ENV TZ="America/New_York" +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get upgrade -y && \ + apt-get install -y build-essential \ + cmake \ + git \ + jq \ + libcurl4-openssl-dev \ + libgmp-dev \ + llvm-11-dev \ + lsb-release \ + ninja-build \ + python3-numpy \ + software-properties-common \ + file \ + wget \ + zlib1g-dev \ + zstd + +RUN yes | bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" llvm.sh 18 + +#make sure no confusion on what llvm library leap's cmake should pick up on +RUN rm -rf /usr/lib/llvm-18/lib/cmake + +ENV LEAP_PLATFORM_HAS_EXTRAS_CMAKE=1 +COPY <<-EOF /extras.cmake + set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "" FORCE) + + set(CMAKE_C_COMPILER "clang-18" CACHE STRING "") + set(CMAKE_CXX_COMPILER "clang++-18" CACHE STRING "") + set(CMAKE_C_FLAGS "-fsanitize=address -fno-omit-frame-pointer" CACHE STRING "") + set(CMAKE_CXX_FLAGS "-fsanitize=address -fno-omit-frame-pointer" CACHE STRING "") +EOF + +ENV ASAN_OPTIONS=detect_leaks=0 diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 81036c04d2..7f42f51044 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -137,6 +137,7 @@ jobs: - cfg: {name: 'ubuntu22', base: 'ubuntu22', builddir: 'ubuntu22'} - cfg: {name: 'asserton', base: 'asserton', builddir: 'asserton'} - cfg: {name: 'ubsan', base: 'ubsan', builddir: 'ubsan'} + - cfg: {name: 'asan', base: 'asan', builddir: 'asan'} - cfg: {name: 'ubuntu20repro', base: 'ubuntu20', builddir: 'reproducible'} - cfg: {name: 'ubuntu22repro', base: 'ubuntu22', builddir: 'reproducible'} runs-on: ["self-hosted", "enf-x86-hightier"]