[CDash] GitHub Status API support

Cristian Morales Vega christian.morales.vega at gmail.com
Thu Apr 4 13:57:31 UTC 2019

On Wed, 20 Feb 2019 at 19:42, Zack Galbreath <zack.galbreath at kitware.com> wrote:
> On Wed, Feb 20, 2019 at 2:00 PM Cristian Morales Vega <christian.morales.vega at gmail.com> wrote:
>> Zack, what are your plans on this? Maybe it's already implemented but
>> not documented?
> We are really, really close :)
> First up, here's a blog post describing CDash's current integration with GitHub:
> https://blog.kitware.com/cdash-integration-with-github/
> This works by commenting on your pull request whenever something goes wrong (build error, test failure, etc). But as you indicated, rather than commenting on a PR, it would be better to have CDash post a status to the commit on GitHub with a link back to itself. The biggest barrier to this goal was the fact that CDash didn't actually ever know when a build was done. So we could only ever post bad news (this is what went wrong), not good news (everything passed, hurray). There was no mechanism in place for CTest to say "Okay CDash, that's the last file I'm going to send you for this build". CTest and CDash finally gained this capability as of CMake v3.14 (currently in the release candidate cycle).
> So now that CDash can actually know when a build is done, we need to teach CDash to use GitHub's status API. This is implemented in CDash PR #748. I've already reviewed these changes and they look good to me. I still need to find the time to test it out & make sure the GitHub status gets updated as expected. Once I do that I'll merge this change into CDash, and our goal of linking back to CDash from the commit status on GitHub will finally be achieved.

I see the PR has already been merged. I guess I could take the latest
Docker Hub image and just try it? Not sure of the exact steps needed,

Do I need to add a Webhook to my GitHub repository? Just push or any
event? What does happen when CDash receives the POST request from
GitHub? Since in my setup right now Jenkins is basically in charge of
everything and CDash doesn't really know about anything until it
receives the results from Jenkins I'm unsure how all the pieces fit

More information about the CDash mailing list