liveBook · Manning

Extra-large macOS runner

As explained in GitHub Actions in Action: Continuous integration and delivery for DevOps

A larger GitHub-hosted runner is a GitHub-managed runner with configurable CPU, memory, disk capacity, and concurrency limits beyond standard hosted runner sizes.

An extra-large macOS runner is a GitHub-hosted option for jobs that outgrow the default macOS machine, especially CPU- or RAM-intensive workloads. It provides a 12-core CPU to help reduce job duration while retaining the default macOS runner's 14 GB RAM and 14 GB disk capacity. section 5.9

Target an extra-large macOS runner with a runner label in `runs-on`:

  • Use `macos-12-xl` to select the macOS 12 extra-large runner. section 5.9
  • Use `macos-latest-xl` to select the latest extra-large macOS runner. section 5.9

Select an enterprise runner group

Larger hosted runners can be placed in a runner group and selected from a job's `runs-on` configuration. This centralizes which workflows may use higher-capacity infrastructure. jobs: build: runs-on: group: contoso-runners steps: - uses: actions/checkout@v3 section 12.3.4

Use extra capacity selectively. Larger runners can shorten workflows, but their minutes cost more; savings depend on whether the faster completion offsets the higher rate. Larger-runner usage does not consume the monthly free minutes reserved for standard hosted runners. section 5.13 section 12.3.4

For broader hosted-runner customization, GitHub Enterprise Cloud larger runners can define CPU, RAM, disk, and concurrency limits. They can also use reserved public IP ranges for controlled access to private resources, subject to configuration and inactivity limits. Self-hosted runners instead provide full hardware and software control, but require security hardening and patching. section 5.11 section 12.3.4

How GitHub Actions in Action: Continuous integration and delivery for DevOps covers it

How deep it goes
Defines two labels and 12-core hardware, while retaining the default runner's RAM and disk specifications.
Examples
Shows runner-group selection through a `runs-on.group` YAML job configuration.
What it assumes
Requires a workflow job that can select a runner through `runs-on`; introduces the available extra-large macOS labels.
What you can do after
Apply it via GitHub Actions by targeting `macos-12-xl` or `macos-latest-xl` for higher-CPU macOS jobs.
How it connects
Connects runner selection with GitHub Actions workflows, runner groups, self-hosted runners, and action-minute billing.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of GitHub Actions in Action: Continuous integration and delivery for DevOps. The section links point to the parts of the book it draws on.