Cartoon gears and neon rolling marbles rolling through a track

Provision a runner group in GitHub Actions

Bekah Whittle
Bekah Whittle // Director, Field Services // GitHub

Runner groups in GitHub Actions help organizations manage their automation setup more easily and securely. The ability to specify which repositories and workflows can access certain runners make it easier to control resources and security. This guide shows you how to use runner groups to improve the management and scalability of your Actions. Stack Overflow will join us in this guide to share advice on utilizing runner groups in your organization.

In this guide, you will learn how to:

  • Create and configure a new runner group from your organization's settings

  • Tailor the runner group's access settings to specify which repositories and workflows are permitted

  • Link specific runners to the newly created runner group to optimize Actions processes

In this module, we will use an example CI/CD workflow to explore runner groups in Actions. You’ll need to copy the following repository template: actions-learning-pathway. If you completed the Automation Essentials module, you can use the same repository and built-test-deploy.yml workflow as before.

Reviewing runner group parameters

You must have admin access to an organization within a GitHub Enterprise account to adjust runner groups settings. If you are already managing a GitHub organization through an enterprise account, you can follow along below to fine-tune the settings in your account. If you don't yet have a GitHub organization, you'll need to set one up first. 

For those without a GitHub Enterprise account, you have two options: You can either read the step for informational purposes without making any adjustments, or you can start a free trial of GitHub Enterprise to gain access to runner groups settings.

1. Create a new GitHub Actions runner group. 

On, navigate to the main page of the organization.

Under your organization name, click Settings. If you cannot see the "Settings" tab, select the “...” dropdown menu, then click Settings.

In the left sidebar, click Actions, then click Runner groups.

In the "Runner groups" section, click New runner group.

Enter a name for your runner group.

Assign a policy for repository access.

From your organization's profile page, select Settings, then find the Actions dropdown on the left.

This menu contains settings for both runners and runner groups.

Choose Runner groups, click New runner group, and name it sample_group. You'll then have the option to adjust repository access. 

Click the settings icon next to Repository access to specify which repositories can access this runner group.

Actions runner groups are a way to 'set it and forget it,' and allow your team to concentrate on other high-priority tasks. Runner groups have substantially eased the complexities of managing access to runners and they offer the flexibility to reallocate resources as your project needs evolve. They let you define which users, repositories, and projects have access to runners in specialized network contexts, like different Azure tenants.

Jason Schwanz
Jason Schwanz // Staff Site Reliability Engineer // Stack Overflow

2. Adjust access parameters by repository and workflow.

Once you've created a runner group in GitHub, it's important to adjust its access settings. In the Repository access settings section, select the actions-learning-pathway repository to allow it to use the runner group. For finer control, you can specify which workflows within those repositories are permitted access. Additional settings even allow restrictions based on branches, tags, or SHAs, ensuring that your Actions infrastructure is both efficient and aligned with governance strategies.

3. Connect runners to runner groups.

After setting up your runner group, head over to the Actions dropdown and choose Runners to see your available options. Here, link your desired large runners (since runner groups are exclusive to them) to the “actions-learning-pathway” group. Associating specific runners to your group ensures that workflows are executed in optimal environments.

Runner groups are a cornerstone in GitHub's automation tools, enhancing scalability by offering granular control over repositories and workflows. Their ability to optimize resource allocation ensures smooth and secure scalability across repositories. 

Up next: Create reusable workflows in GitHub Actions

Our next guide dives into reusable workflows, teaching you how to standardize processes, avoid redundancy, and achieve peak efficiency across your projects.