.patchew.yml 8.3 KB

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