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