summaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2020-04-10 17:18:13 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-04-10 17:30:40 (GMT)
commit676eb0c1ce0d380478eb16bdc5a3f2a7bc01c1d2 (patch)
tree8c650db55f66c829314b009bae7c3def4002d169 /ci
parent662f9cf1548cf069cb819e9e95f224657015fcf9 (diff)
downloadgit-676eb0c1ce0d380478eb16bdc5a3f2a7bc01c1d2.zip
git-676eb0c1ce0d380478eb16bdc5a3f2a7bc01c1d2.tar.gz
git-676eb0c1ce0d380478eb16bdc5a3f2a7bc01c1d2.tar.bz2
ci: add a problem matcher for GitHub Actions
With this patch, test failures will be annotated with a helpful, clickable message in GitHub Actions. For details, see https://github.com/actions/toolkit/blob/master/docs/problem-matchers.md Note: we need to set `TEST_SHELL_PATH` to Bash so that the problem matcher is fed a file and line number for each test failure. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ci')
-rw-r--r--ci/git-problem-matcher.json16
-rwxr-xr-xci/lib.sh5
2 files changed, 21 insertions, 0 deletions
diff --git a/ci/git-problem-matcher.json b/ci/git-problem-matcher.json
new file mode 100644
index 0000000..506dfbd
--- /dev/null
+++ b/ci/git-problem-matcher.json
@@ -0,0 +1,16 @@
+{
+ "problemMatcher": [
+ {
+ "owner": "git-test-suite",
+ "pattern": [
+ {
+ "regexp": "^([^ :]+\\.sh):(\\d+): (error|warning|info):\\s+(.*)$",
+ "file": 1,
+ "line": 2,
+ "severity": 3,
+ "message": 4
+ }
+ ]
+ }
+ ]
+}
diff --git a/ci/lib.sh b/ci/lib.sh
index ff24c54..dac3688 100755
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -157,6 +157,11 @@ then
MAKEFLAGS="$MAKEFLAGS --jobs=10"
test windows != "$CI_OS_NAME" ||
GIT_TEST_OPTS="--no-chain-lint --no-bin-wrappers $GIT_TEST_OPTS"
+
+ # https://github.com/actions/toolkit/blob/master/docs/commands.md#problem-matchers
+ echo "::add-matcher::ci/git-problem-matcher.json"
+ test linux-musl = "$jobname" ||
+ MAKEFLAGS="$MAKEFLAGS TEST_SHELL_PATH=/bin/sh"
else
echo "Could not identify CI type" >&2
env >&2