

The following example workflow has two jobs, named Run-npm-on-Ubuntu and Run-PSScriptAnalyzer-on-Windows. The following diagram demonstrates how two jobs in a workflow are executed on two different GitHub-hosted runners. When the job has finished, the VM is automatically decommissioned. You can run workflows directly on the VM or in a Docker container. All steps in the job execute on the VM, allowing the steps in that job to share information using the runner's filesystem. When the job begins, GitHub automatically provisions a new VM for that job. For the full list of runner types, see " About GitHub-hosted runners." To use a GitHub-hosted runner, create a job and use runs-on to specify the type of runner that will process the job, such as ubuntu-latest, windows-latest, or macos-latest. When you use a GitHub-hosted runner, machine maintenance and upgrades are taken care of for you.

Each GitHub-hosted runner is a new virtual machine (VM) hosted by GitHub with the runner application and other tools preinstalled, and is available with Ubuntu Linux, Windows, or macOS operating systems. GitHub provides runners that you can use to run your jobs, or you can host your own runners. For example, a runner can clone your repository locally, install testing software, and then run commands that evaluate your code. Runners are the machines that execute jobs in a GitHub Actions workflow.
