]> git.ipfire.org Git - thirdparty/git.git/commitdiff
ci(github): also mark up compile errors
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 13 Jun 2022 13:13:08 +0000 (13:13 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Jun 2022 16:58:42 +0000 (09:58 -0700)
When GCC produces those helpful errors, we will want to present them in
the GitHub workflow runs in the most helpful manner. To that end, we
want to use workflow commands to render errors and warnings:
https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions

In the previous commit, we ensured that grouping is used for the build
in all jobs, and this allows us to piggy-back onto the `group` function
to transmogrify the output.

Note: If `set -o pipefail` was available, we could do this in a little
more elegant way. But since some of the steps are run using `dash`, we
have to do a little `{ ...; echo $? >exit.status; } | ...` dance.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ci/lib.sh

index b142d254ec17743ad5b1f506df33a57755d9f174..f095519f8dba9672530430ced23eb5c66e7b8e67 100755 (executable)
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -29,8 +29,14 @@ else
                set +x
                begin_group "$1"
                shift
-               "$@"
-               res=$?
+               # work around `dash` not supporting `set -o pipefail`
+               (
+                       "$@" 2>&1
+                       echo $? >exit.status
+               ) |
+               sed 's/^\(\([^ ]*\):\([0-9]*\):\([0-9]*:\) \)\(error\|warning\): /::\5 file=\2,line=\3::\1/'
+               res=$(cat exit.status)
+               rm exit.status
                end_group
                return $res
        }