summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@src.gnome.org>2021-03-26 16:31:45 +0100
committerDaiki Ueno <dueno@src.gnome.org>2021-03-26 17:40:20 +0100
commitb965ce8818329a84f6d1e09322acbe0aa014e583 (patch)
treee72fe4ea0d36846ea374e8966cb568a6225afd13
parenta9c867468b86719afc9fb62479dc5c48244f5926 (diff)
downloadgnome-keyring-b965ce8818329a84f6d1e09322acbe0aa014e583.tar.gz
.gitlab-ci.yml: Run tests as a regular user
-rw-r--r--.gitlab-ci.yml90
1 files changed, 47 insertions, 43 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0b5b52ab..22ab967e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,70 +3,74 @@ 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
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}"