Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-updates-240221-1...
[qemu.git] / .patchew.yml
blob988c29261f9b3d279004a5af32b3dd348616c140
1 ---
2 # Note: this file is still unused.  It serves as a documentation for the
3 # Patchew configuration in case patchew.org disappears or has to be
4 # reinstalled.
6 # Patchew configuration is available to project administrators at
7 # https://patchew.org/api/v1/projects/1/config/ and can be configured
8 # to YAML using the following Python script:
10 #     import json
11 #     import sys
12 #     import ruamel.yaml
14 #     json_str = sys.stdin.read()
15 #     yaml = ruamel.yaml.YAML()
16 #     yaml.explicit_start = True
17 #     data = json.loads(json_str, object_pairs_hook=ruamel.yaml.comments.CommentedMap)
18 #     ruamel.yaml.scalarstring.walk_tree(data)
19 #     yaml.dump(data, sys.stdout)
21 email:
22   notifications:
23     timeouts:
24       event: TestingReport
25       enabled: true
26       to_user: false
27       reply_subject: true
28       set_reply_to: true
29       in_reply_to: true
30       reply_to_all: false
31       subject_template: none
32       to: fam@euphon.net
33       cc: ''
34       body_template: |
35         {% if not is_timeout %} {{ cancel }} {% endif %}
37         Test '{{ test }}' timeout, log:
39         {{ log }}
40     ENOSPC:
41       event: TestingReport
42       enabled: true
43       to_user: false
44       reply_subject: false
45       set_reply_to: false
46       in_reply_to: true
47       reply_to_all: false
48       subject_template: Out of space error
49       to: fam@euphon.net
50       cc: ''
51       body_template: |
52         {% if passed %}
53           {{ cancel }}
54         {% endif %}
56         {% if 'No space left on device' in log %}
57         Tester {{ tester }} out of space when running {{ test }}
59           {{ log }}
60         {% else %}
61           {{ cancel }}
62         {% endif %}
63     FailureShort:
64       event: TestingReport
65       enabled: true
66       to_user: false
67       reply_subject: true
68       set_reply_to: true
69       in_reply_to: true
70       reply_to_all: true
71       subject_template: Testing failed
72       to: ''
73       cc: ''
74       body_template: |
75         {% if passed or not obj.message_id or is_timeout %}
76           {{ cancel }}
77         {% endif %}
78         {% if 'No space left on device' in log %}
79           {{ cancel }}
80         {% endif %}
81         Patchew URL: https://patchew.org/QEMU/{{ obj.message_id }}/
83         {% ansi2text log as logtext %}
84         {% if test == "checkpatch" %}
85         Hi,
87         This series seems to have some coding style problems. See output below for
88         more information:
90         {{ logtext }}
91         {% elif test == "docker-mingw@fedora" or test == "docker-quick@centos7" or test == "asan" %}
92         Hi,
94         This series failed the {{ test }} build test. Please find the testing commands and
95         their output below. If you have Docker installed, you can probably reproduce it
96         locally.
98         {% lines_between logtext start="^=== TEST SCRIPT BEGIN ===$" stop="^=== TEST SCRIPT END ===$" %}
99         {% lines_between logtext start="^=== OUTPUT BEGIN ===$" stop="=== OUTPUT END ===$" as output %}
100         {% grep_C output regex="\b(FAIL|XPASS|ERROR|WARN|error:|warning:)" n=3 %}
101         {% elif test == "s390x" or test == "FreeBSD" or test == "ppcle" or test == "ppcbe" %}
102         Hi,
104         This series failed build test on {{test}} host. Please find the details below.
106         {% lines_between logtext start="^=== TEST SCRIPT BEGIN ===$" stop="^=== TEST SCRIPT END ===$" %}
107         {% lines_between logtext start="^=== OUTPUT BEGIN ===$" stop="=== OUTPUT END ===$" as output %}
108         {% grep_C output regex="\b(FAIL|XPASS|ERROR|WARN|error:|warning:)" n=3 %}
109         {% else %}
110         {{ cancel }}
111         {% endif %}
113         The full log is available at
114         {{ log_url }}.
115         ---
116         Email generated automatically by Patchew [https://patchew.org/].
117         Please send your feedback to patchew-devel@redhat.com
118 testing:
119   tests:
120     asan:
121       enabled: true
122       requirements: docker
123       timeout: 3600
124       script: |
125         #!/bin/bash
126         time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1
127     docker-quick@centos7:
128       enabled: false
129       requirements: docker,x86_64
130       timeout: 3600
131       script: |
132         #!/bin/bash
133         time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
134     checkpatch:
135       enabled: true
136       requirements: ''
137       timeout: 600
138       script: |
139         #!/bin/bash
140         git rev-parse base > /dev/null || exit 0
141         git config --local diff.renamelimit 0
142         git config --local diff.renames True
143         git config --local diff.algorithm histogram
144         ./scripts/checkpatch.pl --mailback base..
145     docker-mingw@fedora:
146       enabled: true
147       requirements: docker,x86_64
148       timeout: 3600
149       script: |
150         #! /bin/bash
151         test "$(uname -m)" = "x86_64"
152     ppcle:
153       enabled: false
154       requirements: ppcle
155       timeout: 3600
156       script: |
157         #!/bin/bash
158         # Testing script will be invoked under the git checkout with
159         # HEAD pointing to a commit that has the patches applied on top of "base"
160         # branch
161         set -e
162         CC=$HOME/bin/cc
163         INSTALL=$PWD/install
164         BUILD=$PWD/build
165         mkdir -p $BUILD $INSTALL
166         SRC=$PWD
167         cd $BUILD
168         $SRC/configure --cc=$CC --prefix=$INSTALL
169         make -j4
170         # XXX: we need reliable clean up
171         # make check -j4 V=1
172         make install
174         echo
175         echo "=== ENV ==="
176         env
178         echo
179         echo "=== PACKAGES ==="
180         rpm -qa
181     ppcbe:
182       enabled: false
183       requirements: ppcbe
184       timeout: 3600
185       script: |
186         #!/bin/bash
187         # Testing script will be invoked under the git checkout with
188         # HEAD pointing to a commit that has the patches applied on top of "base"
189         # branch
190         set -e
191         CC=$HOME/bin/cc
192         INSTALL=$PWD/install
193         BUILD=$PWD/build
194         mkdir -p $BUILD $INSTALL
195         SRC=$PWD
196         cd $BUILD
197         $SRC/configure --cc=$CC --prefix=$INSTALL
198         make -j4
199         # XXX: we need reliable clean up
200         # make check -j4 V=1
201         make install
203         echo
204         echo "=== ENV ==="
205         env
207         echo
208         echo "=== PACKAGES ==="
209         rpm -qa
210     FreeBSD:
211       enabled: true
212       requirements: qemu-x86,x86_64,git
213       timeout: 3600
214       script: |
215         #!/bin/bash
216         # Testing script will be invoked under the git checkout with
217         # HEAD pointing to a commit that has the patches applied on top of "base"
218         # branch
219         if qemu-system-x86_64 --help >/dev/null 2>&1; then
220           QEMU=qemu-system-x86_64
221         elif /usr/libexec/qemu-kvm --help >/dev/null 2>&1; then
222           QEMU=/usr/libexec/qemu-kvm
223         else
224           exit 1
225         fi
226         make vm-build-freebsd J=21 QEMU=$QEMU
227         exit 0
228     docker-clang@ubuntu:
229       enabled: true
230       requirements: docker,x86_64
231       timeout: 3600
232       script: |
233         #!/bin/bash
234         time make docker-test-clang@ubuntu SHOW_ENV=1 J=14 NETWORK=1
235     s390x:
236       enabled: true
237       requirements: s390x
238       timeout: 3600
239       script: |
240         #!/bin/bash
241         # Testing script will be invoked under the git checkout with
242         # HEAD pointing to a commit that has the patches applied on top of "base"
243         # branch
244         set -e
245         CC=$HOME/bin/cc
246         INSTALL=$PWD/install
247         BUILD=$PWD/build
248         mkdir -p $BUILD $INSTALL
249         SRC=$PWD
250         cd $BUILD
251         $SRC/configure --cc=$CC --prefix=$INSTALL
252         make -j4
253         # XXX: we need reliable clean up
254         # make check -j4 V=1
255         make install
257         echo
258         echo "=== ENV ==="
259         env
261         echo
262         echo "=== PACKAGES ==="
263         rpm -qa
264   requirements:
265     x86_64:
266       script: |
267         #! /bin/bash
268         test "$(uname -m)" = "x86_64"
269     qemu-x86:
270       script: |
271         #!/bin/bash
272         if qemu-system-x86_64 --help >/dev/null 2>&1; then
273           :
274         elif /usr/libexec/qemu-kvm --help >/dev/null 2>&1; then
275           :
276         else
277           exit 1
278         fi
279     ppcle:
280       script: |
281         #!/bin/bash
282         test "$(uname -m)" = "ppc64le"
283     ppcbe:
284       script: |
285         #!/bin/bash
286         test "$(uname -m)" = "ppc64"
287     git:
288       script: |
289         #! /bin/bash
290         git config user.name > /dev/null 2>&1
291     docker:
292       script: |
293         #!/bin/bash
294         docker ps || sudo -n docker ps
295     s390x:
296       script: |
297         #!/bin/bash
298         test "$(uname -m)" = "s390x"
299 git:
300   push_to: git@github.com:patchew-project/qemu
301   public_repo: https://github.com/patchew-project/qemu
302   url_template: https://github.com/patchew-project/qemu/tree/%t