Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/tools/gitlab/test.yml
4388 views
1
# CI script for testing Wine
2
3
.wine-test:
4
stage: test
5
image: $CI_REGISTRY/wine/wine:debian-trixie
6
interruptible: true
7
variables:
8
GIT_STRATEGY: none
9
GECKO_VER: 2.47.4
10
MONO_VER: 10.2.0
11
cache:
12
- key: wine-gecko-$GECKO_VER
13
paths:
14
- wine-gecko-$GECKO_VER-x86.msi
15
- wine-gecko-$GECKO_VER-x86_64.msi
16
- key: wine-mono-$MONO_VER
17
paths:
18
- wine-mono-$MONO_VER-x86.msi
19
before_script:
20
- |
21
printf '\e[0Ksection_start:%s:wine_test_prepare_env[collapsed=true]\r\e[0K' "$(date +%s)"
22
printf '\e[36;1mPreparing environment for Wine\e[0m\n'
23
- export BASEDIR=$PWD
24
- export PATH=$BASEDIR/usr/local/bin:$PATH
25
- export DISPLAY=:0
26
- export LC_ALL=C.UTF-8
27
- export LP_NUM_THREADS=4
28
- export WINEDEBUG=err-all,fixme-all
29
- |
30
cat >$HOME/xorg.conf << EOF
31
Section "Device"
32
Identifier "dummy"
33
Driver "dummy"
34
VideoRam 32768
35
EndSection
36
EOF
37
- echo 'exec /usr/bin/fvwm -f config -c "Style * MwmDecor" -c "Style * UsePPosition" 2>/dev/null' >$HOME/.xinitrc
38
- startx -- -config $HOME/xorg.conf $DISPLAY & while ! pgrep fvwm >/dev/null 2>&1; do sleep 1; done
39
- 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
40
- 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
41
- 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
42
- mkdir -p $HOME/Documents $HOME/Desktop usr/local/share/wine/gecko usr/local/share/wine/mono
43
- ln -sf $BASEDIR/wine-gecko-$GECKO_VER-x86.msi $BASEDIR/wine-gecko-$GECKO_VER-x86_64.msi usr/local/share/wine/gecko
44
- ln -sf $BASEDIR/wine-mono-$MONO_VER-x86.msi usr/local/share/wine/mono
45
- pulseaudio --start --exit-idle-time=-1
46
- wine wineboot.exe -u
47
- wineserver -w
48
- printf '\e[0Ksection_end:%s:wine_test_prepare_env\r\e[0K' "$(date +%s)"
49
50
.wine-test-windows:
51
stage: test
52
interruptible: true
53
variables:
54
GIT_STRATEGY: none
55
# Non-ascii characters in authors name may get into the output of kernel32:process test which cause
56
# qemu-agent.py in Windows to fail with: UnicodeDecodeError: 'utf-8' codec can't decode byte ...
57
CI_COMMIT_AUTHOR: ""
58
CI_COMMIT_DESCRIPTION: ""
59
CI_COMMIT_MESSAGE: ""
60
GITLAB_USER_NAME: ""
61
62
test-linux-64:
63
extends: .wine-test
64
variables:
65
INCLUDE_TESTS: "dinput ntoskrnl.exe"
66
rules:
67
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
68
needs:
69
- job: build-linux
70
script:
71
- export WINETEST_COLOR=1
72
- wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -q -o - -J winetest.xml $INCLUDE_TESTS
73
artifacts:
74
when: always
75
paths:
76
- winetest.xml
77
reports:
78
junit: winetest.xml
79
80
test-linux-32:
81
extends: .wine-test
82
variables:
83
EXCLUDE_TESTS: "d3d11:d3d11 d3d9:d3d9ex d3d9:visual"
84
rules:
85
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
86
needs:
87
- job: build-linux
88
script:
89
- export WINETEST_COLOR=1
90
- wine usr/local/lib/wine/i386-windows/winetest.exe -q -q -o - -J winetest.xml -n $EXCLUDE_TESTS
91
artifacts:
92
when: always
93
paths:
94
- winetest.xml
95
reports:
96
junit: winetest.xml
97
98
test-win10-21h2-32:
99
extends: .wine-test-windows
100
rules:
101
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
102
needs:
103
- job: build-winetest
104
tags:
105
- win10-21h2
106
script:
107
- $WINETEST_ARGS = @(Get-Content ./winetest.args)
108
- |
109
if ($WINETEST_ARGS.count -gt 0) {
110
./winetest.exe -q -q -o - -J winetest.tmp @WINETEST_ARGS >winetest.log
111
} else {
112
echo '<?xml version="1.0" encoding="UTF-8"?><testsuites/>' >winetest.tmp
113
echo $null >winetest.log
114
}
115
after_script:
116
- Get-Content ./winetest.tmp | Set-Content -Encoding utf8 winetest.xml
117
- Get-Content ./winetest.log
118
artifacts:
119
when: always
120
paths:
121
- winetest.xml
122
- winetest.log
123
reports:
124
junit: winetest.xml
125
126
test-win10-21h2-64:
127
extends: .wine-test-windows
128
rules:
129
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
130
needs:
131
- job: build-winetest
132
tags:
133
- win10-21h2
134
script:
135
- $WINETEST_ARGS = @(Get-Content ./winetest.args)
136
- |
137
if ($WINETEST_ARGS.count -gt 0) {
138
./winetest64.exe -q -q -o - -J winetest.tmp @WINETEST_ARGS >winetest.log
139
} else {
140
echo '<?xml version="1.0" encoding="UTF-8"?><testsuites/>' >winetest.tmp
141
echo $null >winetest.log
142
}
143
after_script:
144
- Get-Content ./winetest.tmp | Set-Content -Encoding utf8 winetest.xml
145
- Get-Content ./winetest.log
146
artifacts:
147
when: always
148
paths:
149
- winetest.xml
150
- winetest.log
151
reports:
152
junit: winetest.xml
153
154
debian-32:
155
extends: .wine-test
156
rules:
157
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
158
needs:
159
- job: build-daily-linux
160
script:
161
- wine usr/local/lib/wine/i386-windows/winetest.exe -q
162
163
debian-wow64:
164
extends: debian-32
165
variables:
166
WINEARCH: "wow64"
167
168
debian-64:
169
extends: .wine-test
170
rules:
171
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
172
needs:
173
- job: build-daily-linux
174
script:
175
- wine usr/local/lib/wine/x86_64-windows/winetest.exe -q
176
177
win10-21h2-32:
178
extends: .wine-test-windows
179
rules:
180
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
181
needs:
182
- job: build-daily-winetest
183
tags:
184
- win10-21h2
185
script:
186
- ./winetest.exe -q
187
188
win10-21h2-64:
189
extends: .wine-test-windows
190
rules:
191
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
192
needs:
193
- job: build-daily-winetest
194
tags:
195
- win10-21h2
196
script:
197
- ./winetest64.exe -q
198
199