5 Runners

 

This chapter covers

  • Getting to know GitHub runners
  • Understanding what the runner service does
  • Using GitHub-hosted runners
  • Analyzing utilization of GitHub-hosted runners
  • When to use self-hosted runners

The runtime of GitHub Actions is provided by services called runners. Runners are standalone instances that continuously ask GitHub if there is work for them to execute. They provide the runtime for your job definitions; they will execute the steps defined in the job for you and provide information about the outcome back to GitHub as well as the logs and any data uploaded to GitHub—for example, artifacts and cache information.

In this chapter, we will focus on the runners GitHub hosts for you as a service. These are called GitHub-hosted runners and come with certain compute power and preinstalled software, and they are maintained with the latest security and operating system (OS) updates. Since GitHub does all the maintenance for you, there is a cost attached to using these runners. Depending on your plan, you will have a certain amount of action minutes included for free (see section 5.4).

5.1 Targeting a runner

5.2 Queuing jobs

5.3 The runner application

5.4 GitHub-hosted runners

5.5 Hosted operating systems

5.6 Installed software

5.7 Default shells

5.8 Installing extra software

5.9 Location and hardware specifications of the hosted runners

5.10 Concurrent jobs

5.11 Larger GitHub-hosted runners

5.12 GitHub-hosted runners in your own Azure Virtual Network

5.13 Billing GitHub-hosted runners

5.14 Analyzing the usage of GitHub-hosted runners

5.15 Self-hosted runners

Summary