Skip to content

Commit 13e5bb1

Browse files
authored
EDI-ify "About GitHub-hosted runners" (#56498)
1 parent c99a6dd commit 13e5bb1

File tree

10 files changed

+285
-271
lines changed

10 files changed

+285
-271
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
title: About GitHub-hosted runners
3+
shortTitle: GitHub-hosted runners
4+
intro: '{% data variables.product.prodname_dotcom %} offers hosted virtual machines to run workflows. The virtual machine contains an environment of tools, packages, and settings available for {% data variables.product.prodname_actions %} to use.'
5+
redirect_from:
6+
- /articles/virtual-environments-for-github-actions
7+
- /github/automating-your-workflow-with-github-actions/virtual-environments-for-github-actions
8+
- /github/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners
9+
- /actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners
10+
- /actions/reference/virtual-environments-for-github-hosted-runners
11+
- /actions/reference/software-installed-on-github-hosted-runners
12+
- /actions/reference/specifications-for-github-hosted-runners
13+
- /actions/using-github-hosted-runners/about-github-hosted-runners
14+
- /actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
15+
- /actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners
16+
- /actions/how-tos/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners
17+
versions:
18+
fpt: '*'
19+
ghes: '*'
20+
ghec: '*'
21+
---
22+
23+
{% data reusables.actions.enterprise-github-hosted-runners %}
24+
25+
## Overview of {% data variables.product.prodname_dotcom %}-hosted runners
26+
27+
Runners are the machines that execute jobs in a {% data variables.product.prodname_actions %} workflow. For example, a runner can clone your repository locally, install testing software, and then run commands that evaluate your code.
28+
29+
{% data variables.product.prodname_dotcom %} provides runners that you can use to run your jobs, or you can [host your own runners](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners). Each {% data variables.product.prodname_dotcom %}-hosted runner is a new virtual machine (VM) hosted by {% data variables.product.prodname_dotcom %} with the runner application and other tools preinstalled, and is available with Ubuntu Linux, Windows, or macOS operating systems. When you use a {% data variables.product.prodname_dotcom %}-hosted runner, machine maintenance and upgrades are taken care of for you.
30+
31+
{% ifversion not ghes %}
32+
33+
You can choose one of the standard {% data variables.product.prodname_dotcom %}-hosted runner options or, if you are on the {% data variables.product.prodname_team %} or {% data variables.product.prodname_ghe_cloud %} plan, you can provision a runner with more cores, or a runner that's powered by a GPU processor. These machines are referred to as "{% data variables.actions.hosted_runner %}." For more information, see [AUTOTITLE](/enterprise-cloud@latest/actions/using-github-hosted-runners/about-larger-runners/about-larger-runners).
34+
35+
Using {% data variables.product.prodname_dotcom %}-hosted runners requires network access with at least 70 kilobits per second upload and download speeds.
36+
37+
{% endif %}
38+
39+
{% ifversion github-hosted-runners-emus-entitlements %}
40+
41+
> [!NOTE]
42+
> {% data reusables.actions.entitlement-minutes-emus %} For more information, see [AUTOTITLE](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users).
43+
44+
{% endif %}
45+
46+
{% ifversion not ghes %}
47+
48+
## Runner Images
49+
50+
{% data variables.product.github %} maintains our own set of VM images for our standard hosted runners. This includes the images for macOS, x64 linux and Windows images. The list of images and their included tools are managed in the [`actions/runner-images`](https://github.com/actions/runner-images) repository. Our arm64 images are partner images, and those are managed in the [`actions/partner-runner-images`](https://github.com/actions/partner-runner-images) repository.
51+
52+
### Preinstalled software for GitHub-owned images
53+
54+
The software tools included in our GitHub-owned images are updated weekly. The update process takes several days, and the list of preinstalled software on the `main` branch is updated after the whole deployment ends.
55+
56+
Workflow logs include a link to the preinstalled tools on the exact runner. To find this information in the workflow log, expand the `Set up job` section. Under that section, expand the `Runner Image` section. The link following `Included Software` will describe the preinstalled tools on the runner that ran the workflow.
57+
58+
For more information, see [AUTOTITLE](/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history).
59+
60+
{% data variables.product.prodname_dotcom %}-hosted runners include the operating system's default built-in tools, in addition to the packages listed in the above references. For example, Ubuntu and macOS runners include `grep`, `find`, and `which`, among other default tools.
61+
62+
{% ifversion actions-sbom %}
63+
64+
You can also view a software bill of materials (SBOM) for each build of the Windows and Ubuntu runner images. For more information, see [AUTOTITLE](/actions/security-guides/security-hardening-for-github-actions#reviewing-the-supply-chain-for-github-hosted-runners).
65+
66+
{% endif %}
67+
68+
We recommend using actions to interact with the software installed on runners. This approach has several benefits:
69+
* Usually, actions provide more flexible functionality like version selection, ability to pass arguments, and parameters
70+
* It ensures the tool versions used in your workflow will remain the same regardless of software updates
71+
72+
If there is a tool that you'd like to request, please open an issue at [actions/runner-images](https://github.com/actions/runner-images). This repository also contains announcements about all major software updates on runners.
73+
74+
> [!NOTE] You can also install additional software on {% data variables.product.prodname_dotcom %}-hosted runners. See [AUTOTITLE](/actions/using-github-hosted-runners/customizing-github-hosted-runners).
75+
76+
## Cloud hosts used by {% data variables.product.prodname_dotcom %}-hosted runners
77+
78+
{% data variables.product.prodname_dotcom %} hosts Linux and Windows runners on virtual machines in Microsoft Azure with the {% data variables.product.prodname_actions %} runner application installed. The {% data variables.product.prodname_dotcom %}-hosted runner application is a fork of the Azure Pipelines Agent. Inbound ICMP packets are blocked for all Azure virtual machines, so ping or traceroute commands might not work. {% data variables.product.prodname_dotcom %} hosts macOS runners in Azure data centers.
79+
80+
## Workflow continuity
81+
82+
{% data reusables.actions.runner-workflow-continuity %}
83+
84+
In addition, if the workflow run has been successfully queued, but has not been processed by a {% data variables.product.prodname_dotcom %}-hosted runner within 45 minutes, then the queued workflow run is discarded.
85+
86+
## The `etc/hosts` file
87+
88+
{% data reusables.actions.runners-etc-hosts-file %}
89+
90+
{% endif %}

content/actions/concepts/runners/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ versions:
77
ghes: '*'
88
ghec: '*'
99
children:
10+
- /about-github-hosted-runners
1011
- /about-larger-runners
1112
- /about-private-networking-with-github-hosted-runners
1213
- /about-self-hosted-runners
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ intro: You can install additional software on GitHub-hosted runners as a part of
44
versions:
55
fpt: '*'
66
ghec: '*'
7+
ghes: '*'
78
type: tutorial
89
topics:
910
- Workflows
@@ -12,6 +13,7 @@ redirect_from:
1213
- /actions/using-github-hosted-runners/customizing-github-hosted-runners
1314
- /actions/using-github-hosted-runners/about-github-hosted-runners/customizing-github-hosted-runners
1415
- /actions/using-github-hosted-runners/using-github-hosted-runners/customizing-github-hosted-runners
16+
- /actions/how-tos/using-github-hosted-runners/using-github-hosted-runners/customizing-github-hosted-runners
1517
---
1618

1719
{% data reusables.actions.enterprise-github-hosted-runners %}

content/actions/how-tos/using-github-hosted-runners/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ versions:
88
ghes: '*'
99
children:
1010
- /using-github-hosted-runners
11+
- /customizing-github-hosted-runners
12+
- /monitoring-your-current-jobs
1113
- /using-larger-runners
1214
- /connecting-to-a-private-network
1315
redirect_from:
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ redirect_from:
88
- /actions/using-github-hosted-runners/monitoring-your-current-jobs
99
- /actions/using-github-hosted-runners/about-github-hosted-runners/monitoring-your-current-jobs
1010
- /actions/using-github-hosted-runners/using-github-hosted-runners/monitoring-your-current-jobs
11+
- /actions/how-tos/using-github-hosted-runners/using-github-hosted-runners/monitoring-your-current-jobs
1112
---
12-
13+
1314
{% data reusables.actions.enterprise-github-hosted-runners %}
1415

1516
## Viewing active jobs in your organization or enterprise
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: Using GitHub-hosted runners
3+
shortTitle: Use GitHub-hosted runners
4+
intro: 'You can assign a job to run on a virtual machine hosted by {% data variables.product.github %}.'
5+
versions:
6+
fpt: '*'
7+
ghes: '*'
8+
ghec: '*'
9+
---
10+
11+
{% ifversion ghes %}
12+
13+
{% data reusables.actions.enterprise-github-hosted-runners %}
14+
15+
{% else %}
16+
17+
## Using a {% data variables.product.prodname_dotcom %}-hosted runner
18+
19+
To use a {% data variables.product.prodname_dotcom %}-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`. For the full list of runner types, see [AUTOTITLE](/actions/reference/github-hosted-runners-reference#supported-runners-and-hardware-resources).{% ifversion repository-actions-runners %} If you have `repo: write` access to a repository, you can view a list of the runners available to use in workflows in the repository. For more information, see [Viewing available runners for a repository](#viewing-available-runners-for-a-repository).{% endif %}
20+
21+
When the job begins, {% data variables.product.prodname_dotcom %} automatically provisions a new VM for that job. All steps in the job execute on the VM, allowing the steps in that job to share information using the runner's filesystem. You can run workflows directly on the VM or in a Docker container. When the job has finished, the VM is automatically decommissioned.
22+
23+
The following diagram demonstrates how two jobs in a workflow are executed on two different {% data variables.product.prodname_dotcom %}-hosted runners.
24+
25+
![Diagram of a workflow that consists of two jobs. One job runs on Ubuntu and the other runs on Windows.](/assets/images/help/actions/overview-github-hosted-runner.png)
26+
27+
The following example workflow has two jobs, named `Run-npm-on-Ubuntu` and `Run-PSScriptAnalyzer-on-Windows`. When this workflow is triggered, {% data variables.product.prodname_dotcom %} provisions a new virtual machine for each job.
28+
29+
* The job named `Run-npm-on-Ubuntu` is executed on a Linux VM, because the job's `runs-on:` specifies `ubuntu-latest`.
30+
* The job named `Run-PSScriptAnalyzer-on-Windows` is executed on a Windows VM, because the job's `runs-on:` specifies `windows-latest`.
31+
32+
```yaml copy
33+
name: Run commands on different operating systems
34+
on:
35+
push:
36+
branches: [ main ]
37+
pull_request:
38+
branches: [ main ]
39+
40+
jobs:
41+
Run-npm-on-Ubuntu:
42+
name: Run npm on Ubuntu
43+
runs-on: ubuntu-latest
44+
steps:
45+
- uses: {% data reusables.actions.action-checkout %}
46+
- uses: {% data reusables.actions.action-setup-node %}
47+
with:
48+
node-version: '14'
49+
- run: npm help
50+
51+
Run-PSScriptAnalyzer-on-Windows:
52+
name: Run PSScriptAnalyzer on Windows
53+
runs-on: windows-latest
54+
steps:
55+
- uses: {% data reusables.actions.action-checkout %}
56+
- name: Install PSScriptAnalyzer module
57+
shell: pwsh
58+
run: |
59+
Set-PSRepository PSGallery -InstallationPolicy Trusted
60+
Install-Module PSScriptAnalyzer -ErrorAction Stop
61+
- name: Get list of rules
62+
shell: pwsh
63+
run: |
64+
Get-ScriptAnalyzerRule
65+
```
66+
67+
While the job runs, the logs and output can be viewed in the {% data variables.product.prodname_dotcom %} UI:
68+
69+
![Screenshot of a workflow run. The steps for the "Run PSScriptAnalyzer on Windows" job are displayed.](/assets/images/help/repository/actions-runner-output.png)
70+
71+
{% data reusables.actions.runner-app-open-source %}
72+
73+
{% ifversion repository-actions-runners %}
74+
75+
## Viewing available runners for a repository
76+
77+
{% data reusables.actions.about-viewing-runner-list %}
78+
79+
{% data reusables.repositories.navigate-to-repo %}
80+
{% data reusables.repositories.actions-tab %}
81+
{% data reusables.repositories.repository-runners %}
82+
1. Review the list of available GitHub-hosted runners for the repository.
83+
{% data reusables.actions.copy-runner-label %}
84+
85+
{% data reusables.actions.actions-tab-new-runners-note %}
86+
87+
{% endif %}
88+
{% endif %}

0 commit comments

Comments
 (0)