xref: /qemu/.patchew.yml (revision f4d4be82)
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        git config --local diff.renamelimit 0
142f6adb8e7SPaolo Bonzini        git config --local diff.renames True
143f6adb8e7SPaolo Bonzini        git config --local diff.algorithm histogram
144f6adb8e7SPaolo Bonzini        ./scripts/checkpatch.pl --mailback base..
145f6adb8e7SPaolo Bonzini    docker-mingw@fedora:
146f6adb8e7SPaolo Bonzini      enabled: true
147f6adb8e7SPaolo Bonzini      requirements: docker,x86_64
148f6adb8e7SPaolo Bonzini      timeout: 3600
149f6adb8e7SPaolo Bonzini      script: |
150f6adb8e7SPaolo Bonzini        #! /bin/bash
151f6adb8e7SPaolo Bonzini        test "$(uname -m)" = "x86_64"
152f6adb8e7SPaolo Bonzini    ppcle:
153f6adb8e7SPaolo Bonzini      enabled: false
154f6adb8e7SPaolo Bonzini      requirements: ppcle
155f6adb8e7SPaolo Bonzini      timeout: 3600
156f6adb8e7SPaolo Bonzini      script: |
157f6adb8e7SPaolo Bonzini        #!/bin/bash
158f6adb8e7SPaolo Bonzini        # Testing script will be invoked under the git checkout with
159f6adb8e7SPaolo Bonzini        # HEAD pointing to a commit that has the patches applied on top of "base"
160f6adb8e7SPaolo Bonzini        # branch
161f6adb8e7SPaolo Bonzini        set -e
162f6adb8e7SPaolo Bonzini        CC=$HOME/bin/cc
163f6adb8e7SPaolo Bonzini        INSTALL=$PWD/install
164f6adb8e7SPaolo Bonzini        BUILD=$PWD/build
165f6adb8e7SPaolo Bonzini        mkdir -p $BUILD $INSTALL
166f6adb8e7SPaolo Bonzini        SRC=$PWD
167f6adb8e7SPaolo Bonzini        cd $BUILD
168f6adb8e7SPaolo Bonzini        $SRC/configure --cc=$CC --prefix=$INSTALL
169f6adb8e7SPaolo Bonzini        make -j4
170f6adb8e7SPaolo Bonzini        # XXX: we need reliable clean up
171f6adb8e7SPaolo Bonzini        # make check -j4 V=1
172f6adb8e7SPaolo Bonzini        make install
173f6adb8e7SPaolo Bonzini
174f6adb8e7SPaolo Bonzini        echo
175f6adb8e7SPaolo Bonzini        echo "=== ENV ==="
176f6adb8e7SPaolo Bonzini        env
177f6adb8e7SPaolo Bonzini
178f6adb8e7SPaolo Bonzini        echo
179f6adb8e7SPaolo Bonzini        echo "=== PACKAGES ==="
180f6adb8e7SPaolo Bonzini        rpm -qa
181f6adb8e7SPaolo Bonzini    ppcbe:
182f6adb8e7SPaolo Bonzini      enabled: false
183f6adb8e7SPaolo Bonzini      requirements: ppcbe
184f6adb8e7SPaolo Bonzini      timeout: 3600
185f6adb8e7SPaolo Bonzini      script: |
186f6adb8e7SPaolo Bonzini        #!/bin/bash
187f6adb8e7SPaolo Bonzini        # Testing script will be invoked under the git checkout with
188f6adb8e7SPaolo Bonzini        # HEAD pointing to a commit that has the patches applied on top of "base"
189f6adb8e7SPaolo Bonzini        # branch
190f6adb8e7SPaolo Bonzini        set -e
191f6adb8e7SPaolo Bonzini        CC=$HOME/bin/cc
192f6adb8e7SPaolo Bonzini        INSTALL=$PWD/install
193f6adb8e7SPaolo Bonzini        BUILD=$PWD/build
194f6adb8e7SPaolo Bonzini        mkdir -p $BUILD $INSTALL
195f6adb8e7SPaolo Bonzini        SRC=$PWD
196f6adb8e7SPaolo Bonzini        cd $BUILD
197f6adb8e7SPaolo Bonzini        $SRC/configure --cc=$CC --prefix=$INSTALL
198f6adb8e7SPaolo Bonzini        make -j4
199f6adb8e7SPaolo Bonzini        # XXX: we need reliable clean up
200f6adb8e7SPaolo Bonzini        # make check -j4 V=1
201f6adb8e7SPaolo Bonzini        make install
202f6adb8e7SPaolo Bonzini
203f6adb8e7SPaolo Bonzini        echo
204f6adb8e7SPaolo Bonzini        echo "=== ENV ==="
205f6adb8e7SPaolo Bonzini        env
206f6adb8e7SPaolo Bonzini
207f6adb8e7SPaolo Bonzini        echo
208f6adb8e7SPaolo Bonzini        echo "=== PACKAGES ==="
209f6adb8e7SPaolo Bonzini        rpm -qa
210f6adb8e7SPaolo Bonzini    FreeBSD:
211f6adb8e7SPaolo Bonzini      enabled: true
212f6adb8e7SPaolo Bonzini      requirements: qemu-x86,x86_64,git
213f6adb8e7SPaolo Bonzini      timeout: 3600
214f6adb8e7SPaolo Bonzini      script: |
215f6adb8e7SPaolo Bonzini        #!/bin/bash
216f6adb8e7SPaolo Bonzini        # Testing script will be invoked under the git checkout with
217f6adb8e7SPaolo Bonzini        # HEAD pointing to a commit that has the patches applied on top of "base"
218f6adb8e7SPaolo Bonzini        # branch
219f6adb8e7SPaolo Bonzini        if qemu-system-x86_64 --help >/dev/null 2>&1; then
220f6adb8e7SPaolo Bonzini          QEMU=qemu-system-x86_64
221f6adb8e7SPaolo Bonzini        elif /usr/libexec/qemu-kvm --help >/dev/null 2>&1; then
222f6adb8e7SPaolo Bonzini          QEMU=/usr/libexec/qemu-kvm
223f6adb8e7SPaolo Bonzini        else
224f6adb8e7SPaolo Bonzini          exit 1
225f6adb8e7SPaolo Bonzini        fi
226f6adb8e7SPaolo Bonzini        make vm-build-freebsd J=21 QEMU=$QEMU
227f6adb8e7SPaolo Bonzini        exit 0
228f6adb8e7SPaolo Bonzini    docker-clang@ubuntu:
229f6adb8e7SPaolo Bonzini      enabled: true
230f6adb8e7SPaolo Bonzini      requirements: docker,x86_64
231f6adb8e7SPaolo Bonzini      timeout: 3600
232f6adb8e7SPaolo Bonzini      script: |
233f6adb8e7SPaolo Bonzini        #!/bin/bash
234f6adb8e7SPaolo Bonzini        time make docker-test-clang@ubuntu SHOW_ENV=1 J=14 NETWORK=1
235f6adb8e7SPaolo Bonzini    s390x:
236f6adb8e7SPaolo Bonzini      enabled: true
237f6adb8e7SPaolo Bonzini      requirements: s390x
238f6adb8e7SPaolo Bonzini      timeout: 3600
239f6adb8e7SPaolo Bonzini      script: |
240f6adb8e7SPaolo Bonzini        #!/bin/bash
241f6adb8e7SPaolo Bonzini        # Testing script will be invoked under the git checkout with
242f6adb8e7SPaolo Bonzini        # HEAD pointing to a commit that has the patches applied on top of "base"
243f6adb8e7SPaolo Bonzini        # branch
244f6adb8e7SPaolo Bonzini        set -e
245f6adb8e7SPaolo Bonzini        CC=$HOME/bin/cc
246f6adb8e7SPaolo Bonzini        INSTALL=$PWD/install
247f6adb8e7SPaolo Bonzini        BUILD=$PWD/build
248f6adb8e7SPaolo Bonzini        mkdir -p $BUILD $INSTALL
249f6adb8e7SPaolo Bonzini        SRC=$PWD
250f6adb8e7SPaolo Bonzini        cd $BUILD
251f6adb8e7SPaolo Bonzini        $SRC/configure --cc=$CC --prefix=$INSTALL
252f6adb8e7SPaolo Bonzini        make -j4
253f6adb8e7SPaolo Bonzini        # XXX: we need reliable clean up
254f6adb8e7SPaolo Bonzini        # make check -j4 V=1
255f6adb8e7SPaolo Bonzini        make install
256f6adb8e7SPaolo Bonzini
257f6adb8e7SPaolo Bonzini        echo
258f6adb8e7SPaolo Bonzini        echo "=== ENV ==="
259f6adb8e7SPaolo Bonzini        env
260f6adb8e7SPaolo Bonzini
261f6adb8e7SPaolo Bonzini        echo
262f6adb8e7SPaolo Bonzini        echo "=== PACKAGES ==="
263f6adb8e7SPaolo Bonzini        rpm -qa
264f6adb8e7SPaolo Bonzini  requirements:
265f6adb8e7SPaolo Bonzini    x86_64:
266f6adb8e7SPaolo Bonzini      script: |
267f6adb8e7SPaolo Bonzini        #! /bin/bash
268f6adb8e7SPaolo Bonzini        test "$(uname -m)" = "x86_64"
269f6adb8e7SPaolo Bonzini    qemu-x86:
270f6adb8e7SPaolo Bonzini      script: |
271f6adb8e7SPaolo Bonzini        #!/bin/bash
272f6adb8e7SPaolo Bonzini        if qemu-system-x86_64 --help >/dev/null 2>&1; then
273f6adb8e7SPaolo Bonzini          :
274f6adb8e7SPaolo Bonzini        elif /usr/libexec/qemu-kvm --help >/dev/null 2>&1; then
275f6adb8e7SPaolo Bonzini          :
276f6adb8e7SPaolo Bonzini        else
277f6adb8e7SPaolo Bonzini          exit 1
278f6adb8e7SPaolo Bonzini        fi
279f6adb8e7SPaolo Bonzini    ppcle:
280f6adb8e7SPaolo Bonzini      script: |
281f6adb8e7SPaolo Bonzini        #!/bin/bash
282f6adb8e7SPaolo Bonzini        test "$(uname -m)" = "ppc64le"
283f6adb8e7SPaolo Bonzini    ppcbe:
284f6adb8e7SPaolo Bonzini      script: |
285f6adb8e7SPaolo Bonzini        #!/bin/bash
286f6adb8e7SPaolo Bonzini        test "$(uname -m)" = "ppc64"
287f6adb8e7SPaolo Bonzini    git:
288f6adb8e7SPaolo Bonzini      script: |
289f6adb8e7SPaolo Bonzini        #! /bin/bash
290f6adb8e7SPaolo Bonzini        git config user.name > /dev/null 2>&1
291f6adb8e7SPaolo Bonzini    docker:
292f6adb8e7SPaolo Bonzini      script: |
293f6adb8e7SPaolo Bonzini        #!/bin/bash
294f6adb8e7SPaolo Bonzini        docker ps || sudo -n docker ps
295f6adb8e7SPaolo Bonzini    s390x:
296f6adb8e7SPaolo Bonzini      script: |
297f6adb8e7SPaolo Bonzini        #!/bin/bash
298f6adb8e7SPaolo Bonzini        test "$(uname -m)" = "s390x"
299f6adb8e7SPaolo Bonzinigit:
300f6adb8e7SPaolo Bonzini  push_to: git@github.com:patchew-project/qemu
301f6adb8e7SPaolo Bonzini  public_repo: https://github.com/patchew-project/qemu
302f6adb8e7SPaolo Bonzini  url_template: https://github.com/patchew-project/qemu/tree/%t
303