Can two VMs / Jobs communicate during test?

I have some end to end tests is like to move into github actions. The software under test runs under Linux so there are many options for testing most of its features. For one feature, the app (on Linux) needs to be able to connect to a windows machine over WinRM. So, containers don’t help here.

Is there a way to have two VMs communicate during a workflow?

Perhaps I could define two jobs, one on a Linux VM and one on the windows VM. Then one of the steps for the Linux job would be to query github APIs waiting until the windows job has started and then open allow the Linux job to WinRM.

Or I could define two workflows. One for Linux that triggers on push, pull_request_target etc. The other workflow ( for windows) would only run on repository_dispatch. But then I still need a way for the two VMs to communicate.

Has anyone tried this? How did it go? Any pointers on how to make testing with both Linux and windows easier.


1 Like

In terms of workflow syntax, you can define an order of jobs (needs) and (as you pointed out) trigger other workflows. But neither guarantees any sort of parallel operation, nor provides communication. I don’t thing using two jobs or workflows is a suitable tool here.

The best option that comes to my mind would be to run both on the runner VM. Setting up a Windows VM on a Linux runner sounds expensive, but Docker on Windows can run Linux containers. Maybe using a Windows runner and then your tool in a container would work? :thinking: