diff options
-rw-r--r-- | .gitlab-ci.yml | 95 |
1 files changed, 52 insertions, 43 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0b5b52ab..f8136d23 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,70 +3,76 @@ stages: - deploy variables: - DEPENDENCIES: dbus-x11 gcc gnome-common gtk-doc make openssh python redhat-rpm-config + DEPENDENCIES: dbus-x11 gcc gnome-common gtk-doc make openssh python redhat-rpm-config lcov libasan libubsan -fedora:Werror: - image: fedora:latest +.build: stage: build + image: fedora:latest before_script: - dnf install -y 'dnf-command(builddep)' - dnf builddep -y gnome-keyring - dnf install -y $DEPENDENCIES - dbus-uuidgen --ensure + - useradd user + +fedora:Werror: + extends: .build script: - - ./autogen.sh --disable-dependency-tracking --enable-gtk-doc --enable-strict CFLAGS="-Wno-error=deprecated-declarations" - - make -j$(nproc) V=1 - - eval `dbus-launch --sh-syntax` - - make -j$(nproc) V=1 distcheck + - NOCONFIGURE=1 ./autogen.sh + - mkdir _build + - chown user _build + - cd _build + - runuser -u user -- ../configure --disable-dependency-tracking --enable-gtk-doc --enable-strict CFLAGS="-Wno-error=deprecated-declarations" + - runuser -u user -- make -j$(nproc) V=1 + - eval `runuser -u user -- dbus-launch --sh-syntax` + - runuser -u user -- make -j$(nproc) V=1 distcheck fedora:asan: - image: fedora:latest - stage: build - before_script: - - dnf install -y 'dnf-command(builddep)' - - dnf builddep -y gnome-keyring - - dnf install -y $DEPENDENCIES libasan - - dbus-uuidgen --ensure + extends: .build + tags: + - asan # LSAN needs CAP_SYS_PTRACE script: - - ./autogen.sh --disable-dependency-tracking CFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LIBS='-lasan -ldl -lpthread' - - make -j$(nproc) V=1 - - eval `dbus-launch --sh-syntax` - - LSAN_OPTIONS=exitcode=0 make -j$(nproc) V=1 DISABLE_HARD_ERRORS=1 XFAIL_TESTS="\$(JS_TESTS) \$(PY_TESTS)" check + - NOCONFIGURE=1 ./autogen.sh + - mkdir _build + - chown user _build + - cd _build + - runuser -u user -- ../configure --disable-dependency-tracking CFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=address -g -fno-common -U_FORTIFY_SOURCE' LIBS='-lasan -ldl -lpthread' + - runuser -u user -- make -j$(nproc) V=1 + - eval `runuser -u user -- dbus-launch --sh-syntax` + - LSAN_OPTIONS=exitcode=0 runuser -u user -- make -j$(nproc) V=1 DISABLE_HARD_ERRORS=1 XFAIL_TESTS="\$(JS_TESTS) \$(PY_TESTS)" check artifacts: paths: - - test-suite.log + - _build/config.log + - _build/test-suite.log fedora:ubsan: - image: fedora:latest - stage: build - before_script: - - dnf install -y 'dnf-command(builddep)' - - dnf builddep -y gnome-keyring - - dnf install -y $DEPENDENCIES libubsan - - dbus-uuidgen --ensure + extends: .build script: - - ./autogen.sh --disable-dependency-tracking CFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LIBS='-lubsan -ldl -lpthread' - - make -j$(nproc) V=1 - - eval `dbus-launch --sh-syntax` - - make -j$(nproc) V=1 check + - NOCONFIGURE=1 ./autogen.sh + - mkdir _build + - chown user _build + - cd _build + - runuser -u user -- ../configure --disable-dependency-tracking CFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' CXXFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LDFLAGS='-fsanitize=undefined -g -fno-common -U_FORTIFY_SOURCE' LIBS='-lubsan -ldl -lpthread' + - runuser -u user -- make -j$(nproc) V=1 + - eval `runuser -u user -- dbus-launch --sh-syntax` + - runuser -u user -- make -j$(nproc) V=1 check artifacts: paths: - - test-suite.log + - _build/config.log + - _build/test-suite.log fedora:coverage: - image: fedora:latest - stage: build - before_script: - - dnf install -y 'dnf-command(builddep)' - - dnf builddep -y gnome-keyring - - dnf install -y $DEPENDENCIES lcov - - dbus-uuidgen --ensure + extends: .build script: - - ./autogen.sh --disable-dependency-tracking --enable-coverage - - make -j$(nproc) V=1 - - eval `dbus-launch --sh-syntax` - - make -j$(nproc) V=1 check - - make coverage + - NOCONFIGURE=1 ./autogen.sh + - mkdir _build + - chown user _build + - cd _build + - runuser -u user -- ../configure --disable-dependency-tracking --enable-coverage + - runuser -u user -- make -j$(nproc) V=1 + - eval `runuser -u user -- dbus-launch --sh-syntax` + - runuser -u user -- make -j$(nproc) V=1 check + - runuser -u user -- make coverage coverage: '/^\s+lines.+:\s+([\d.]+\%)\s+/' artifacts: name: "gnome-keyring-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" @@ -75,6 +81,9 @@ fedora:coverage: pages: stage: deploy + only: + - master + needs: ['fedora:coverage'] script: - mkdir -p public - mv build/coverage public/coverage |