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