# CI script for testing Wine .wine-test: stage: test image: $CI_REGISTRY/wine/wine:debian-bookworm interruptible: true variables: GIT_STRATEGY: none GECKO_VER: 2.47.4 MONO_VER: 9.0.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 LP_NUM_THREADS=4 - 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" -c "Style * UsePPosition" 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 test-linux-64: extends: .wine-test variables: INCLUDE_TESTS: "dinput" rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - job: build-linux script: - export WINETEST_COLOR=1 - wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL $INCLUDE_TESTS test-linux-32: extends: .wine-test variables: EXCLUDE_TESTS: "d3d11:d3d11 d3d9:d3d9ex d3d9:visual" rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - job: build-linux script: - export WINETEST_COLOR=1 - wine usr/local/lib/wine/i386-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL -n $EXCLUDE_TESTS test-win10-21h2-32: stage: test interruptible: true variables: GIT_STRATEGY: none rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - job: build-winetest tags: - win10-21h2 script: - $WINETEST_ARGS = @(Get-Content ./winetest.args) - if ($WINETEST_ARGS.count -gt 0) { ./winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL @WINETEST_ARGS >winetest.log } else { echo $null >winetest.log } after_script: - Get-Content ./winetest.log artifacts: when: always paths: - winetest.log test-win10-21h2-64: stage: test interruptible: true variables: GIT_STRATEGY: none rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - job: build-winetest tags: - win10-21h2 script: - $WINETEST_ARGS = @(Get-Content ./winetest.args) - if ($WINETEST_ARGS.count -gt 0) { ./winetest64.exe -q -q -o - -t gitlab -u $CI_JOB_URL @WINETEST_ARGS >winetest.log } else { echo $null >winetest.log } after_script: - Get-Content ./winetest.log artifacts: when: always paths: - winetest.log 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 -u $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 -u $CI_JOB_URL win10-21h2-32: stage: test interruptible: true variables: GIT_STRATEGY: none rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - job: build-daily-winetest tags: - win10-21h2 script: - ./winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL win10-21h2-64: stage: test interruptible: true variables: GIT_STRATEGY: none rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - job: build-daily-winetest tags: - win10-21h2 script: - ./winetest64.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL