Skip to content

Repo sync #39220

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jul 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# ---------------------------------------------------------------
# To update the sha:
# https://github.com/github/gh-base-image/pkgs/container/gh-base-image%2Fgh-base-noble
FROM ghcr.io/github/gh-base-image/gh-base-noble:20250625-232939-g2376d80a2 AS base
FROM ghcr.io/github/gh-base-image/gh-base-noble:20250630-232247-g421d4a07a AS base

# Install curl for Node install and determining the early access branch
# Install git for cloning docs-early-access & translations repos
Expand Down
90 changes: 90 additions & 0 deletions content/actions/concepts/runners/about-github-hosted-runners.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
title: About GitHub-hosted runners
shortTitle: GitHub-hosted runners
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.'
redirect_from:
- /articles/virtual-environments-for-github-actions
- /github/automating-your-workflow-with-github-actions/virtual-environments-for-github-actions
- /github/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners
- /actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners
- /actions/reference/virtual-environments-for-github-hosted-runners
- /actions/reference/software-installed-on-github-hosted-runners
- /actions/reference/specifications-for-github-hosted-runners
- /actions/using-github-hosted-runners/about-github-hosted-runners
- /actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
- /actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners
- /actions/how-tos/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners
versions:
fpt: '*'
ghes: '*'
ghec: '*'
---

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

## Overview of {% data variables.product.prodname_dotcom %}-hosted runners

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.

{% 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.

{% ifversion not ghes %}

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).

Using {% data variables.product.prodname_dotcom %}-hosted runners requires network access with at least 70 kilobits per second upload and download speeds.

{% endif %}

{% ifversion github-hosted-runners-emus-entitlements %}

> [!NOTE]
> {% 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).

{% endif %}

{% ifversion not ghes %}

## Runner Images

{% 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.

### Preinstalled software for GitHub-owned images

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.

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.

For more information, see [AUTOTITLE](/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history).

{% 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.

{% ifversion actions-sbom %}

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).

{% endif %}

We recommend using actions to interact with the software installed on runners. This approach has several benefits:
* Usually, actions provide more flexible functionality like version selection, ability to pass arguments, and parameters
* It ensures the tool versions used in your workflow will remain the same regardless of software updates

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.

> [!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).

## Cloud hosts used by {% data variables.product.prodname_dotcom %}-hosted runners

{% 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.

## Workflow continuity

{% data reusables.actions.runner-workflow-continuity %}

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.

## The `etc/hosts` file

{% data reusables.actions.runners-etc-hosts-file %}

{% endif %}
1 change: 1 addition & 0 deletions content/actions/concepts/runners/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ versions:
ghes: '*'
ghec: '*'
children:
- /about-github-hosted-runners
- /about-larger-runners
- /about-private-networking-with-github-hosted-runners
- /about-self-hosted-runners
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ intro: You can install additional software on GitHub-hosted runners as a part of
versions:
fpt: '*'
ghec: '*'
ghes: '*'
type: tutorial
topics:
- Workflows
Expand All @@ -12,6 +13,7 @@ redirect_from:
- /actions/using-github-hosted-runners/customizing-github-hosted-runners
- /actions/using-github-hosted-runners/about-github-hosted-runners/customizing-github-hosted-runners
- /actions/using-github-hosted-runners/using-github-hosted-runners/customizing-github-hosted-runners
- /actions/how-tos/using-github-hosted-runners/using-github-hosted-runners/customizing-github-hosted-runners
---

{% data reusables.actions.enterprise-github-hosted-runners %}
Expand Down
2 changes: 2 additions & 0 deletions content/actions/how-tos/using-github-hosted-runners/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ versions:
ghes: '*'
children:
- /using-github-hosted-runners
- /customizing-github-hosted-runners
- /monitoring-your-current-jobs
- /using-larger-runners
- /connecting-to-a-private-network
redirect_from:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ redirect_from:
- /actions/using-github-hosted-runners/monitoring-your-current-jobs
- /actions/using-github-hosted-runners/about-github-hosted-runners/monitoring-your-current-jobs
- /actions/using-github-hosted-runners/using-github-hosted-runners/monitoring-your-current-jobs
- /actions/how-tos/using-github-hosted-runners/using-github-hosted-runners/monitoring-your-current-jobs
---

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

## Viewing active jobs in your organization or enterprise
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: Using GitHub-hosted runners
shortTitle: Use GitHub-hosted runners
intro: 'You can assign a job to run on a virtual machine hosted by {% data variables.product.github %}.'
versions:
fpt: '*'
ghes: '*'
ghec: '*'
---

{% ifversion ghes %}

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

{% else %}

## Using a {% data variables.product.prodname_dotcom %}-hosted runner

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 %}

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.

The following diagram demonstrates how two jobs in a workflow are executed on two different {% data variables.product.prodname_dotcom %}-hosted runners.

![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)

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.

* The job named `Run-npm-on-Ubuntu` is executed on a Linux VM, because the job's `runs-on:` specifies `ubuntu-latest`.
* The job named `Run-PSScriptAnalyzer-on-Windows` is executed on a Windows VM, because the job's `runs-on:` specifies `windows-latest`.

```yaml copy
name: Run commands on different operating systems
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
Run-npm-on-Ubuntu:
name: Run npm on Ubuntu
runs-on: ubuntu-latest
steps:
- uses: {% data reusables.actions.action-checkout %}
- uses: {% data reusables.actions.action-setup-node %}
with:
node-version: '14'
- run: npm help

Run-PSScriptAnalyzer-on-Windows:
name: Run PSScriptAnalyzer on Windows
runs-on: windows-latest
steps:
- uses: {% data reusables.actions.action-checkout %}
- name: Install PSScriptAnalyzer module
shell: pwsh
run: |
Set-PSRepository PSGallery -InstallationPolicy Trusted
Install-Module PSScriptAnalyzer -ErrorAction Stop
- name: Get list of rules
shell: pwsh
run: |
Get-ScriptAnalyzerRule
```

While the job runs, the logs and output can be viewed in the {% data variables.product.prodname_dotcom %} UI:

![Screenshot of a workflow run. The steps for the "Run PSScriptAnalyzer on Windows" job are displayed.](/assets/images/help/repository/actions-runner-output.png)

{% data reusables.actions.runner-app-open-source %}

{% ifversion repository-actions-runners %}

## Viewing available runners for a repository

{% data reusables.actions.about-viewing-runner-list %}

{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.actions-tab %}
{% data reusables.repositories.repository-runners %}
1. Review the list of available GitHub-hosted runners for the repository.
{% data reusables.actions.copy-runner-label %}

{% data reusables.actions.actions-tab-new-runners-note %}

{% endif %}
{% endif %}
Loading
Loading