[glib/wip/asan-ci: 1979/1979] ci: Add a sanitizer scheduled job




commit 3ad669a9a0e27ee6fd117e227faad1ea6fc227b6
Author: Philip Withnall <pwithnall endlessos org>
Date:   Thu Apr 7 13:43:29 2022 +0100

    ci: Add a sanitizer scheduled job
    
    This will run the build and tests with `-Db_sanitizer` defined, on the
    normal job schedule, so that we periodically get address and undefined
    behaviour testing.
    
    This is complementary to the `valgrind` job.
    
    Signed-off-by: Philip Withnall <pwithnall endlessos org>

 .gitlab-ci.yml               | 35 ++++++++++++++++++++++++++++++++++-
 .gitlab-ci/fedora.Dockerfile |  2 ++
 2 files changed, 36 insertions(+), 1 deletion(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d2c039d249..42364564f6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,7 +10,7 @@ cache:
     - _ccache/
 
 variables:
-  FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v13"
+  FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v14"
   COVERITY_IMAGE: "registry.gitlab.gnome.org/gnome/glib/coverity:v3"
   DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v9"
   ANDROID_IMAGE: "registry.gitlab.gnome.org/gnome/glib/android-ndk:v6"
@@ -554,6 +554,39 @@ valgrind:
       - "_build/glib/glibconfig.h"
       - "_build/meson-logs"
 
+sanitizer:
+  extends:
+    - .build-linux
+    - .only-schedules
+  image: $FEDORA_IMAGE
+  stage: analysis
+  needs: []
+  script:
+    - meson ${MESON_COMMON_OPTIONS}
+            --werror
+            --default-library=both
+            --prefix=$HOME/glib-installed
+            --localstatedir=/var
+            --libdir=lib
+            -Db_sanitize=address,undefined
+            -Dsystemtap=true
+            -Ddtrace=true
+            -Dinstalled_tests=true
+            _build
+    - ninja -C _build
+    - .gitlab-ci/run-tests.sh
+  artifacts:
+    reports:
+      junit: "_build/${CI_JOB_NAME}-report.xml"
+    name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
+    when: always
+    expire_in: 1 week
+    paths:
+      - "_build/config.h"
+      - "_build/glib/glibconfig.h"
+      - "_build/meson-logs"
+      - "_build/${CI_JOB_NAME}-report.xml"
+
 pages:
   stage: deploy
   only:
diff --git a/.gitlab-ci/fedora.Dockerfile b/.gitlab-ci/fedora.Dockerfile
index deaa7c74ec..eb2e979b11 100644
--- a/.gitlab-ci/fedora.Dockerfile
+++ b/.gitlab-ci/fedora.Dockerfile
@@ -35,10 +35,12 @@ RUN dnf -y update \
     gtk-doc \
     itstool \
     lcov \
+    libasan \
     libattr-devel \
     libffi-devel \
     libmount-devel \
     libselinux-devel \
+    libubsan \
     libxslt \
     ncurses-compat-libs \
     ninja-build \


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]