Custom reports URLs in workflow

Hi!

We are trying to migrate from our CI into GitHub Actions. Our workflows produce simple pure static HTML test reports. We upload these reports into public S3 and want to publish S3 URLs somewhere (except action logs) as a result of an action run.

Previously we have used GitHub Statuses API and put this URL into Details link. And it was actually enough for us:


But Github Actions themselves put Details links into the same region. And as far as I know, it’s impossible to modify them because these links are pasted with absolutely different API (Checks API). I’ve tried to modify Checks Details URL directly from action using Checks - GitHub Docs request, and it even responses 200, but the URL under Details doesn’t change.

Also, I’ve tried to use Statuses as before. It works but now I have x2 rows and it looks weird.

Also, I’ve checked other options:

  1. Put reports links into comments.

We have a lot of different checks so it’s impossible to have a separate comment for each report. So we have to place all URLs into a single comment. The main cons here are possible race conditions when two checks simultaneously try to modify a single comment.

  1. Put reports links into Annotations (Workflow commands for GitHub Actions - GitHub Docs).

It’s also working, but URLs even not clickable (HTML and markdown are not supported, I’ve checked)

So, is there any better solution where I can put my custom URL so it will be simpler to find it?

8 Likes

Just from my experience - I’ve worked based on comments - you could either synchronize leaving a comment with a seperate job that will wait for the rest of them - or drop things into multiple comments, if you’re so afraid of concurrency. In my opinion - if they are well formatted (visually as well) - comments do a good job

1 Like

Thank you! Yes, comments can work well and at least we can use external synchronization to avoid races. But it’s so strange that there is no standard way to paste test report URL… I think almost all github action pipelines produce some reports and it’s not convenient to grep them from logs…