Subject: Re: [PATCH 2/2] ci(github): also mark up compile errors

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Thu, 09 Jun 2022 15:47:35 +0200

On Thu, Jun 09 2022, Johannes Schindelin via GitGitGadget wrote:

> From: Johannes Schindelin <[email-masked]>
>
> 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

The docs you're linking to state:

	::warning file={name},line={line},endLine={endLine},title={title}::{message}

But here...

> +		sed 's/^\(\([^ ]*\):\([0-9]*\):\([0-9]*:\) \)\(error\|warning\): /::\5 file=\2 line=\3::\1/'

You seem to omit the comma, and the CI output itself seems to note the
filename as "compat/win32/syslog.c line=53#L1".

I haven't tested, but is this the issue you noted in the CL as "the only
downside"? I.e. the link to the source code is nonsensical in that CI
output, it links to the diff of the PR itself.

But the GH docs say "associate the message with a particular file in
your repository.", so it would seem that there should be a way to link
to the file at that revision, not only if it was altered in the given
commit.

On the "sed" one-liner, at least GCC supports emitting JSON error
output:
https://stackoverflow.com/questions/36657869/how-do-i-dump-gcc-warnings-into-a-structured-format

You don't fill in "column" now, but if you used that presumably that
would be easy, and more useful.

It seems clang also supports it, but not any easily machine-readable
format:
https://clang.llvm.org/docs/UsersManual.html#cmdoption-fdiagnostics-format