Starting Slicer from GitHub Actions workflow

I’m attempting to start Slicer (specifically a custom app) from a GitHub actions workflow, but I’m constantly running into “Graphics capability of this computer is not sufficient to run this application” issues. Does anyone know what might be going wrong here with my setup?

I have setup a self-hosted GitHub actions runner on a Windows desktop that is running a Quadro P620 graphics card. Maybe my understanding of how GitHub actions work is not correct? The runner is a desktop with a graphics card and a connected monitor for display. Starting the application directly on the desktop does not run into this graphics capability issue. I have taken a look at Get Help — 3D Slicer documentation and tried to follow the instructions there, but I keep running into the same graphics capability warning.

This sounds like what happens with some RDP (remote desktop protocol) on sessions windows. Do you specifically need windows? I’ve had good luck with xvfb on linux

I don’t necessarily need to use Windows. It is just the self-hosted runner for GitHub Actions is a Windows Desktop in my office.

For continuous integration, a native Linux would be probably a better choice than Windows: using software renderers are much more common on Linux, and also because the build is about 5-6x faster compared to Windows (30 minutes for a full Slicer build from scratch, instead of 2.5-3 hours). You would probably also want to share the build result as a docker image (so that you can try the application and not just run the tests on it), which again is probably simpler to do on Linux.

Not sure if you all have had experiences with both Azure Pipelines and GitHub Actions. I had been starting Slicer successfully through an Azure Pipelines run, but once I switched to GitHub Actions it isn’t running the same. This was surprising to me since my impression was that these two options were very very similar.

That’s interesting. I also assumed github actions on windows and Azure pipelines would be pretty similar. It seems Andras and I have had the same experience that 90% (or so) of issues you’d want to catch in CI are platform-independent so it’s probably cleaner to have linux as the baseline. Of course if you want to test against windows APIs or VS versions you’ll need windows. Perhaps you can set up something other than RDP with the github actions (vnc on windows tends to work well, as does google chrome remote desktop although it may not be easy to use in CI).