Support GitHub "Check Runs"

GitHub offers a “Check Runs” API that allows very rich integration of build results into the GitHub pull request experience.

This feature is in Preview on GitHub but services like Azure Pipelines and Netlify have already implemented it in Production, and I’d love for Buildkite to support it too.

Blog post: https://developer.github.com/changes/2018-05-07-new-checks-api-public-beta/
API reference: https://developer.github.com/v3/checks/runs/

Here’s an example pull request using Azure Pipelines: https://github.com/prettier/prettier/pull/5749/checks?check_run_id=50147856

I won’t dictate any solutions, but it seems like a perfect fit for buildkite-agent annotate, the markdown messages could be forwarded directly to GitHub.

Hi @azz, we’ve actually been pondering this one! We’ve got some updates to our GitHub integrations on the horizon, and this is likely going to be part of it.

One of the problems is that our annotations don’t map to GitHub checks at all; check annotations can point to a particular line, yes, but they’re plain-text (yuk!) which is a bit awkward. We’re trying to find a way to let you use the strengths of both :smile:

Hi @jess, that’s awesome to hear. Looking forward to see what you’ve got coming up!

Any update on this? Combining buildkite pipelines with github actions results is a fairly unoptimal experience due to status events being so spammy since they trigger for all state changes versus the slightly more granular events provided by check runs.

Hey @ca1ne,
We do now have an early alpha implementation we’ve explored, but I’m not sure how soon it’s likely to become an officially supported feature. In the meantime, if you reach out to support@buildkite.com, I can get you added to that alpha. Just be aware that because it’s in alpha, this feature may radically change or disappear at any time!

Is there any further movement on GH annotations support? Is the alpha still alpha?

I’m trying to figure out a way to hook into GH annotations from an existing Buildkite pipeline that is running as a check, but I haven’t found a way that isn’t a complete hack (i.e. creating a second check-run manually from inside a pipeline that is already a check-run?)

Is there perhaps at least a supported mechanism to access the check_run_id assigned to the pipeline, so that I can add annotations via the API under the same run?

Hey @jerry, this is still an alpha feature, and there are no current plans to expand the existing functionality at this point.

I think we may have a solution for you to hook into the GH annotations from your pipeline; if you reach out to support@buildkite.com we can go over the implementation details with you and see if it would work for your use case.

Hi @Jason, one year later, have we any progress on updating the checks created by Buildkite to add annotations?
I would really like to expose linters issues into the Files Changed tab of Github.

Hey @tetienne!

The feature it’s still in alpha, unfortunately we haven’t had the capacity to make any progress. But you can send an email to support if you would like more information and try it out.

Best!