gitlab: Run tests on Debian after the daily commit round.

This commit is contained in:
Alexandre Julliard 2022-09-08 19:03:22 +02:00
parent 0f96288080
commit 1d0f66a3c6
5 changed files with 92 additions and 14 deletions

View file

@ -3,9 +3,11 @@
stages:
- image
- build
- test
- deploy
include:
- local: "/tools/gitlab/image.yml"
- local: "/tools/gitlab/build.yml"
- local: "/tools/gitlab/test.yml"
- local: "/tools/gitlab/release.yml"

View file

@ -10,13 +10,19 @@ set -Eeuxo pipefail
autoreconf
cd build64
../configure -C --enable-win64 --enable-werror --with-mingw
../configure -q -C --enable-win64 --enable-werror --with-mingw
make -s -j$(nproc)
cd ..
cd build32
../configure -C --enable-werror --with-mingw
../configure -q -C --enable-werror --with-mingw
make -s -j$(nproc)
cd ..
if test -s .git/rebase-merge/git-rebase-todo
then
git reset --hard
else
make -s -j$(nproc) -C build32 install-lib install-test DESTDIR=$BASEDIR
make -s -j$(nproc) -C build64 install-lib install-test DESTDIR=$BASEDIR
fi

View file

@ -20,6 +20,7 @@
- export CCACHE_COMPILERCHECK=content
- export PATH="/usr/lib/ccache:$PATH"
- mkdir -p build32 build64
- rm -fr .git/rebase-merge # in case a previous CI run failed in git rebase
build-linux:
extends: .wine-build
@ -31,7 +32,6 @@ build-linux:
- build64/config.log
- build32/config.log
script:
- rm -fr .git/rebase-merge # in case a previous CI run failed in git rebase
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-linux
build-mac:
@ -46,26 +46,32 @@ build-mac:
- build64/config.log
- build32/config.log
script:
- rm -fr .git/rebase-merge
- export PATH="/usr/local/opt/ccache/libexec:$PATH"
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-mac
build-winetest:
build-daily-linux:
extends: .wine-build
rules:
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
artifacts:
expire_in: 1 day
paths:
- usr/local/
script:
- ./tools/gitlab/build-linux
build-winetest:
stage: build
image: $CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX/debian:bullseye
rules:
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
needs:
- job: build-daily-linux
artifacts:
name: winetest
paths:
- winetest.exe
- winetest64.exe
script:
- cd build64
- ../configure -q -C --enable-win64 --with-mingw
- make -s -j$(nproc) install-test DESTDIR=$BASEDIR
- cd ../build32
- ../configure -q -C --with-mingw
- make -s -j$(nproc) install-test DESTDIR=$BASEDIR
- cd ..
- mv usr/local/lib/wine/i386-windows/winetest.exe winetest.exe
- mv usr/local/lib/wine/x86_64-windows/winetest.exe winetest64.exe

View file

@ -51,7 +51,11 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
samba-dev:amd64 \
unixodbc-dev:amd64 unixodbc-dev:i386 \
x11proto-dev && \
apt-get install -y ccache && \
apt-get install -y ccache netbase curl ca-certificates xserver-xorg-video-dummy xserver-xorg xfonts-base xinit fvwm \
winbind fonts-liberation2 fonts-noto-core fonts-noto-cjk pulseaudio libasound2-plugins:amd64 libasound2-plugins:i386 \
libmjpegutils-2.1-0:amd64 libmjpegutils-2.1-0:i386 gstreamer1.0-libav:amd64 gstreamer1.0-libav:i386 \
gstreamer1.0-plugins-base:amd64 gstreamer1.0-plugins-good:amd64 gstreamer1.0-plugins-bad:amd64 gstreamer1.0-plugins-ugly:amd64 \
gstreamer1.0-plugins-base:i386 gstreamer1.0-plugins-good:i386 gstreamer1.0-plugins-bad:i386 gstreamer1.0-plugins-ugly:i386 && \
apt-get clean && \
useradd -m gitlab

60
tools/gitlab/test.yml Normal file
View file

@ -0,0 +1,60 @@
# CI script for testing Wine
.wine-test:
stage: test
image: $CI_REGISTRY/wine/wine:debian-bullseye
interruptible: true
variables:
GECKO_VER: 2.47.3
MONO_VER: 7.3.0
cache:
- key: wine-gecko-$GECKO_VER
paths:
- wine-gecko-$GECKO_VER-x86.msi
- wine-gecko-$GECKO_VER-x86_64.msi
- key: wine-mono-$MONO_VER
paths:
- wine-mono-$MONO_VER-x86.msi
before_script:
- export BASEDIR=$PWD
- export PATH=$BASEDIR/usr/local/bin:$PATH
- export DISPLAY=:0
- export LC_ALL=C.UTF-8
- export WINEDEBUG=err-all,fixme-all
- |
cat >$HOME/xorg.conf << EOF
Section "Device"
Identifier "dummy"
Driver "dummy"
VideoRam 32768
EndSection
EOF
- echo 'exec /usr/bin/fvwm -f config -c "Style * MwmDecor" 2>/dev/null' >$HOME/.xinitrc
- startx -- -config $HOME/xorg.conf $DISPLAY &
- test -f wine-gecko-$GECKO_VER-x86.msi || curl -o wine-gecko-$GECKO_VER-x86.msi https://dl.winehq.org/wine/wine-gecko/$GECKO_VER/wine-gecko-$GECKO_VER-x86.msi
- test -f wine-gecko-$GECKO_VER-x86_64.msi || curl -o wine-gecko-$GECKO_VER-x86_64.msi https://dl.winehq.org/wine/wine-gecko/$GECKO_VER/wine-gecko-$GECKO_VER-x86_64.msi
- test -f wine-mono-$MONO_VER-x86.msi || curl -o wine-mono-$MONO_VER-x86.msi https://dl.winehq.org/wine/wine-mono/$MONO_VER/wine-mono-$MONO_VER-x86.msi
- mkdir -p $HOME/Documents $HOME/Desktop usr/local/share/wine/gecko usr/local/share/wine/mono
- ln -sf $BASEDIR/wine-gecko-$GECKO_VER-x86.msi $BASEDIR/wine-gecko-$GECKO_VER-x86_64.msi usr/local/share/wine/gecko
- ln -sf $BASEDIR/wine-mono-$MONO_VER-x86.msi usr/local/share/wine/mono
- pulseaudio --start --exit-idle-time=-1
- wine wineboot.exe -u
- wineserver -w
debian-32:
extends: .wine-test
rules:
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
needs:
- job: build-daily-linux
script:
- wine usr/local/lib/wine/i386-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -m $CI_JOB_URL
debian-64:
extends: .wine-test
rules:
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
needs:
- job: build-daily-linux
script:
- wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -m $CI_JOB_URL