Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2021-01-19 10:30:06 -0800
committerAllan McRae <allan@archlinux.org>2021-01-21 17:18:24 +1000
commit1fdf8c00764af9e32f8dec13061f625f48bd4c8c (patch)
tree12296a9936cfd870778e3ed55de942ab613aab5a
parentf9bc6c2b09c18dd48f839f53d834c6fd1bfd2dd3 (diff)
gitlab-ci: print output and logs for failed tests
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--.gitlab-ci.yml5
-rwxr-xr-xbuild-aux/cat-test-file11
-rwxr-xr-xbuild-aux/print-failed-test-output17
3 files changed, 33 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e889c498..6ca35941 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ variables:
MAKEFLAGS: "-j10"
VERBOSE: 1
PACMAN_OPTS: --needed --noconfirm --cachedir .pkg-cache
+ PACTEST_OPTS: --review --editor=../build-aux/cat-test-file
cache:
key: pkgs-v1
@@ -9,6 +10,10 @@ cache:
# For some reason Gitlab CI only supports storing cache/artifacts in a path relative to the build directory
- .pkg-cache
+default:
+ after_script:
+ - build-aux/print-failed-test-output build/meson-logs/testlog.json
+
.arch-test:
image: archlinux/base
before_script:
diff --git a/build-aux/cat-test-file b/build-aux/cat-test-file
new file mode 100755
index 00000000..1bcc1113
--- /dev/null
+++ b/build-aux/cat-test-file
@@ -0,0 +1,11 @@
+#!/usr/bin/python3
+
+import sys
+
+for path in sys.argv[1:]:
+ print('# -----------------------------------')
+ print('# ' + path + ':')
+ print('# -----------------------------------')
+ with open(path, 'r') as f:
+ for line in f:
+ print('# ' + line, end='')
diff --git a/build-aux/print-failed-test-output b/build-aux/print-failed-test-output
new file mode 100755
index 00000000..1f1ab76d
--- /dev/null
+++ b/build-aux/print-failed-test-output
@@ -0,0 +1,17 @@
+#!/usr/bin/python
+
+import json
+import sys
+
+def print_result(result):
+ print('==================================================================')
+ print(result['name'])
+ print(' '.join(result['command']))
+ print('==================================================================')
+ print(result['stdout'])
+
+with open(sys.argv[1], 'r') as f:
+ for line in f:
+ result = json.loads(line)
+ if result['result'] == 'FAIL':
+ print_result(result)