xref: /openbmc/qemu/.patchew.yml (revision 40f23e4e)
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.
5#
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:
9#
10#     import json
11#     import sys
12#     import ruamel.yaml
13#
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)
20
21email:
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 %}
36
37        Test '{{ test }}' timeout, log:
38
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 %}
55
56        {% if 'No space left on device' in log %}
57        Tester {{ tester }} out of space when running {{ test }}
58
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 }}/
82
83        {% ansi2text log as logtext %}
84        {% if test == "checkpatch" %}
85        Hi,
86
87        This series seems to have some coding style problems. See output below for
88        more information:
89
90        {{ logtext }}
91        {% elif test == "docker-mingw@fedora" or test == "docker-quick@centos8" or test == "asan" %}
92        Hi,
93
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.
97
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,
103
104        This series failed build test on {{test}} host. Please find the details below.
105
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 %}
112
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
118testing:
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@centos8:
128      enabled: false
129      requirements: docker,x86_64
130      timeout: 3600
131      script: |
132        #!/bin/bash
133        time make docker-test-quick@centos8 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        ./scripts/checkpatch.pl --mailback base..
142    docker-mingw@fedora:
143      enabled: true
144      requirements: docker,x86_64
145      timeout: 3600
146      script: |
147        #! /bin/bash
148        test "$(uname -m)" = "x86_64"
149    ppcle:
150      enabled: false
151      requirements: ppcle
152      timeout: 3600
153      script: |
154        #!/bin/bash
155        # Testing script will be invoked under the git checkout with
156        # HEAD pointing to a commit that has the patches applied on top of "base"
157        # branch
158        set -e
159        CC=$HOME/bin/cc
160        INSTALL=$PWD/install
161        BUILD=$PWD/build
162        mkdir -p $BUILD $INSTALL
163        SRC=$PWD
164        cd $BUILD
165        $SRC/configure --cc=$CC --prefix=$INSTALL
166        make -j4
167        # XXX: we need reliable clean up
168        # make check -j4 V=1
169        make install
170
171        echo
172        echo "=== ENV ==="
173        env
174
175        echo
176        echo "=== PACKAGES ==="
177        rpm -qa
178    ppcbe:
179      enabled: false
180      requirements: ppcbe
181      timeout: 3600
182      script: |
183        #!/bin/bash
184        # Testing script will be invoked under the git checkout with
185        # HEAD pointing to a commit that has the patches applied on top of "base"
186        # branch
187        set -e
188        CC=$HOME/bin/cc
189        INSTALL=$PWD/install
190        BUILD=$PWD/build
191        mkdir -p $BUILD $INSTALL
192        SRC=$PWD
193        cd $BUILD
194        $SRC/configure --cc=$CC --prefix=$INSTALL
195        make -j4
196        # XXX: we need reliable clean up
197        # make check -j4 V=1
198        make install
199
200        echo
201        echo "=== ENV ==="
202        env
203
204        echo
205        echo "=== PACKAGES ==="
206        rpm -qa
207    FreeBSD:
208      enabled: true
209      requirements: qemu-x86,x86_64,git
210      timeout: 3600
211      script: |
212        #!/bin/bash
213        # Testing script will be invoked under the git checkout with
214        # HEAD pointing to a commit that has the patches applied on top of "base"
215        # branch
216        if qemu-system-x86_64 --help >/dev/null 2>&1; then
217          QEMU=qemu-system-x86_64
218        elif /usr/libexec/qemu-kvm --help >/dev/null 2>&1; then
219          QEMU=/usr/libexec/qemu-kvm
220        else
221          exit 1
222        fi
223        make vm-build-freebsd J=21 QEMU=$QEMU
224        exit 0
225    docker-clang@ubuntu:
226      enabled: true
227      requirements: docker,x86_64
228      timeout: 3600
229      script: |
230        #!/bin/bash
231        time make docker-test-clang@ubuntu SHOW_ENV=1 J=14 NETWORK=1
232    s390x:
233      enabled: true
234      requirements: s390x
235      timeout: 3600
236      script: |
237        #!/bin/bash
238        # Testing script will be invoked under the git checkout with
239        # HEAD pointing to a commit that has the patches applied on top of "base"
240        # branch
241        set -e
242        CC=$HOME/bin/cc
243        INSTALL=$PWD/install
244        BUILD=$PWD/build
245        mkdir -p $BUILD $INSTALL
246        SRC=$PWD
247        cd $BUILD
248        $SRC/configure --cc=$CC --prefix=$INSTALL
249        make -j4
250        # XXX: we need reliable clean up
251        # make check -j4 V=1
252        make install
253
254        echo
255        echo "=== ENV ==="
256        env
257
258        echo
259        echo "=== PACKAGES ==="
260        rpm -qa
261  requirements:
262    x86_64:
263      script: |
264        #! /bin/bash
265        test "$(uname -m)" = "x86_64"
266    qemu-x86:
267      script: |
268        #!/bin/bash
269        if qemu-system-x86_64 --help >/dev/null 2>&1; then
270          :
271        elif /usr/libexec/qemu-kvm --help >/dev/null 2>&1; then
272          :
273        else
274          exit 1
275        fi
276    ppcle:
277      script: |
278        #!/bin/bash
279        test "$(uname -m)" = "ppc64le"
280    ppcbe:
281      script: |
282        #!/bin/bash
283        test "$(uname -m)" = "ppc64"
284    git:
285      script: |
286        #! /bin/bash
287        git config user.name > /dev/null 2>&1
288    docker:
289      script: |
290        #!/bin/bash
291        docker ps || sudo -n docker ps
292    s390x:
293      script: |
294        #!/bin/bash
295        test "$(uname -m)" = "s390x"
296git:
297  push_to: git@github.com:patchew-project/qemu
298  public_repo: https://github.com/patchew-project/qemu
299  url_template: https://github.com/patchew-project/qemu/tree/%t
300