Note: GitHub-hosted runners are not currently supported on GitHub Enterprise Server. You can see more information about planned future support on the GitHub public roadmap.
For information on how to use labels to route jobs to specific types of self-hosted runners, see "Using self-hosted runners in a workflow."
A self-hosted runner can be located in either your repository, organization, or enterprise settings on your GitHub Enterprise Server instance. To manage a self-hosted runner, you must have the following permissions, depending on where the self-hosted runner was added:
-
User repository: You must be the repository owner.
-
Organization: You must be an organization owner.
-
Organization repository: You must be an organization owner, or have admin access to the repository.
-
Enterprise: You must be a GitHub Enterprise site administrator.
Creating a custom label
-
Navigate to where your runner is registered:
-
In an organization or repository: navigate to the main page and click Settings.
-
If using an enterprise-level runner:
- In the top-right corner of GitHub Enterprise Server, click your profile photo, then click Enterprise settings.
-
-
Navigate to the GitHub Actions settings:
-
In an organization or repository:
- In the left sidebar, click Actions.
- In the left sidebar, under "Actions", click Runners.
-
If using an enterprise-level runner:
- In the enterprise sidebar, click Policies.
- Under " Policies", click Actions.
- Click the Runners tab.
-
-
Locate the list of runners under "Runners".
-
If your runner is in a group, locate the runner group and click to view the list of runners.
-
Locate the runner you want to update, and click to view the label selection menu. This menu displays all the custom labels available to your self-hosted runner. Labels already assigned to your self-hosted runner have a next to them.
-
In the "Filter labels" field, type the name of your new label, and click Create new label.
The custom label is created and assigned to the self-hosted runner. Custom labels can be removed from self-hosted runners, but they currently can't be manually deleted. Any unused labels that are not assigned to a runner will be automatically deleted within 24 hours.
Assigning a label to a self-hosted runner
-
Navigate to where your runner is registered:
-
In an organization or repository: navigate to the main page and click Settings.
-
If using an enterprise-level runner:
- In the top-right corner of GitHub Enterprise Server, click your profile photo, then click Enterprise settings.
-
-
Navigate to the GitHub Actions settings:
-
In an organization or repository:
- In the left sidebar, click Actions.
- In the left sidebar, under "Actions", click Runners.
-
If using an enterprise-level runner:
- In the enterprise sidebar, click Policies.
- Under " Policies", click Actions.
- Click the Runners tab.
-
-
Locate the list of runners under "Runners".
-
If your runner is in a group, locate the runner group and click to view the list of runners.
-
Locate the runner you want to update, and click to view the label selection menu. This menu displays all the custom labels available to your self-hosted runner. Labels already assigned to your self-hosted runner have a next to them.
-
Click on a label to assign it to your self-hosted runner.
Removing a custom label from a self-hosted runner
-
Navigate to where your runner is registered:
-
In an organization or repository: navigate to the main page and click Settings.
-
If using an enterprise-level runner:
- In the top-right corner of GitHub Enterprise Server, click your profile photo, then click Enterprise settings.
-
-
Navigate to the GitHub Actions settings:
-
In an organization or repository:
- In the left sidebar, click Actions.
- In the left sidebar, under "Actions", click Runners.
-
If using an enterprise-level runner:
- In the enterprise sidebar, click Policies.
- Under " Policies", click Actions.
- Click the Runners tab.
-
-
Locate the list of runners under "Runners".
-
If your runner is in a group, locate the runner group and click to view the list of runners.
-
Locate the runner you want to update, and click to view the label selection menu. This menu displays all the custom labels available to your self-hosted runner. Labels already assigned to your self-hosted runner have a next to them.
-
Click on the assigned label to remove it from your self-hosted runner. Any unused labels that are not assigned to a runner will be automatically deleted within 24 hours.
Programmatically assign labels
You can programmatically assign labels to a self-hosted runner after the runner is created, or during its initial configuration.
-
To programmatically assign labels to an existing self-hosted runner, you must use the REST API. For more information, see the "Self-hosted runners" REST API.
-
To programmatically assign labels to a self-hosted runner during the initial runner configuration, you can pass label names to the
config
script using thelabels
parameter.Note: You cannot use the
config
script to assign labels to an existing self-hosted runner.For example, this command assigns a label named
gpu
when configuring a new self-hosted runner:./config.sh --url <REPOSITORY_URL> --token <REGISTRATION_TOKEN> --labels gpu
The label is created if it does not already exist. You can also use this approach to assign the default labels to runners, such as
x64
orlinux
. When default labels are assigned using the configuration script, GitHub Actions accepts them as given and does not validate that the runner is actually using that operating system or architecture.You can use comma separation to assign multiple labels. For example:
./config.sh --url <REPOSITORY_URL> --token <REGISTRATION_TOKEN> --labels gpu,x64,linux
Note: If you replace an existing runner, then you must reassign any custom labels.