* Improve documentation issue no #1034 Done with the minor fixes for open issue number #1034 . * Increasing the importance I wanted to delete a branch, but I couldn't in spite of reading this document. The problem was, the branch I wanted to delete was the default branch. Even though it is stated in this document, it was not given enough importance that everyone would see it. * typo A small type in the comments * Update setting-up-your-development-environment-to-create-a-github-app.md Fix two small typos. * properly capitalize "macOS" * Clarify GH password requirements * Change " to ` As done in the description of `master` * " to ` in DE * " to ` in PT * " to ` in RU * Fix typo metadata-syntax-for-github-actions.md Fix typo for metadata-syntax-for-github-actions#outputs-for-composite-run-steps-actions * chore: Remove bolding from headings * Removed deprecated echo set-env instruction * fix typo (#1516) Co-authored-by: hubwriter <hubwriter@github.com> * Remove extraneous grammar period which breaks the compare URL (#1252) * Remove extraneous grammar period which breaks the compare URL * Update data/reusables/repositories/two-dot-diff-comparison-example-urls.md Co-authored-by: Nick Schonning <nschonni@gmail.com> Co-authored-by: Nick Schonning <nschonni@gmail.com> Co-authored-by: hubwriter <hubwriter@github.com> * Revert "" to ` in RU" This reverts commitd484fd6ef5. * Revert "" to ` in PT" This reverts commitfab62f05be. * Revert "" to ` in DE" This reverts commit78abcd6f7a. * Change md This squashes all the translation commits and their deletion. * Update content/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository.md Co-authored-by: Felicity Chapman <felicitymay@github.com> Co-authored-by: Atharva Shirdhankar <72031540+StarTrooper08@users.noreply.github.com> Co-authored-by: Aakarsh B <aakarshbiju@gmail.com> Co-authored-by: Aritra Roy Gosthipaty <aritra.born2fly@gmail.com> Co-authored-by: Guilherme Macedo <guilherme@gmacedo.com> Co-authored-by: Stephen Wade <stephen@stephenwade.me> Co-authored-by: Shao Yang Hong <hongsy2006@gmail.com> Co-authored-by: a2br <62328077+a2br@users.noreply.github.com> Co-authored-by: Cas van Dinter <casvd@hotmail.com> Co-authored-by: Nick Schonning <nschonni@gmail.com> Co-authored-by: Antoine Rondelet <rondelet.antoine@gmail.com> Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com> Co-authored-by: Meg Bird <megbird@github.com> Co-authored-by: ねず <39144575+wonda-tea-coffee@users.noreply.github.com> Co-authored-by: hubwriter <hubwriter@github.com> Co-authored-by: Ilia <ilia@wearebond.com> Co-authored-by: a2br <a2br@users.noreply.github.com> Co-authored-by: Felicity Chapman <felicitymay@github.com> Co-authored-by: Jason Etcovitch <jasonetco@github.com>
9.6 KiB
title, intro, product, redirect_from, versions
| title | intro | product | redirect_from | versions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Specifications for GitHub-hosted runners | {% 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. | {% data reusables.gated-features.actions %} |
|
|
{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %}
About {% data variables.product.prodname_dotcom %}-hosted runners
A {% data variables.product.prodname_dotcom %}-hosted runner is a virtual machine hosted by {% data variables.product.prodname_dotcom %} with the {% data variables.product.prodname_actions %} runner application installed. {% data variables.product.prodname_dotcom %} offers runners with Linux, Windows, and macOS operating systems.
When you use a {% data variables.product.prodname_dotcom %}-hosted runner, machine maintenance and upgrades are taken care of for you. You can run workflows directly on the virtual machine or in a Docker container.
You can specify the runner type for each job in a workflow. Each job in a workflow executes in a fresh instance of the virtual machine. All steps in the job execute in the same instance of the virtual machine, allowing the actions in that job to share information using the filesystem.
{% data reusables.github-actions.runner-app-open-source %}
Cloud hosts for {% data variables.product.prodname_dotcom %}-hosted runners
{% data variables.product.prodname_dotcom %} hosts Linux and Windows runners on Standard_DS2_v2 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. For more information about the Standard_DS2_v2 machine resources, see "Dv2 and DSv2-series" in the Microsoft Azure documentation.
{% data variables.product.prodname_dotcom %} hosts macOS runners in {% data variables.product.prodname_dotcom %}'s own macOS Cloud.
Administrative privileges of {% data variables.product.prodname_dotcom %}-hosted runners
The Linux and macOS virtual machines both run using passwordless sudo. When you need to execute commands or install tools that require more privileges than the current user, you can use sudo without needing to provide a password. For more information, see the "Sudo Manual."
Windows virtual machines are configured to run as administrators with User Account Control (UAC) disabled. For more information, see "How User Account Control works" in the Windows documentation.
Supported runners and hardware resources
Each virtual machine has the same hardware resources available.
- 2-core CPU
- 7 GB of RAM memory
- 14 GB of SSD disk space
{% data reusables.github-actions.supported-github-runners %}
{% data reusables.github-actions.ubuntu-runner-preview %} {% data reusables.github-actions.macos-runner-preview %}
Workflow logs list the runner used to run a job. For more information, see "Viewing workflow run history."
Supported software
The software tools included in {% data variables.product.prodname_dotcom %}-hosted runners are updated weekly. For the latest list of included tools for each runner operating system, see the links below:
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 16.04 LTS
- Windows Server 2019
- Windows Server 2016
- macOS 10.15
- macOS 11.0
{% data reusables.github-actions.ubuntu-runner-preview %} {% data reusables.github-actions.macos-runner-preview %}
{% 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.
Workflow logs include a link to the preinstalled tools on the runner. For more information, see "Viewing workflow run history."
If there is a tool that you'd like to request, please open an issue at actions/virtual-environments.
IP addresses
{% note %}
Note: If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you cannot use {% data variables.product.prodname_dotcom %}-hosted runners and must instead use self-hosted runners. For more information, see "About self-hosted runners."
{% endnote %}
Windows and Ubuntu runners are hosted in Azure and have the same IP address ranges as Azure Data centers. Currently, all Windows and Ubuntu {% data variables.product.prodname_dotcom %}-hosted runners are in the following Azure regions:
- East US (
eastus) - East US 2 (
eastus2) - West US 2 (
westus2) - Central US (
centralus) - South Central US (
southcentralus)
Microsoft updates the Azure IP address ranges weekly in a JSON file that you can download from the Azure IP Ranges and Service Tags - Public Cloud website. You can use this range of IP addresses if you require an allow-list to prevent unauthorized access to your internal resources.
The JSON file contains an array called values. Inside that array, you can find the supported IP addresses in an object with a name and id of the Azure region, for example "AzureCloud.eastus2".
You can find the supported IP address ranges in the "addressPrefixes" object. This is a condensed example of the JSON file.
{
"changeNumber": 84,
"cloud": "Public",
"values": [
{
"name": "AzureCloud.eastus2",
"id": "AzureCloud.eastus2",
"properties": {
"changeNumber": 33,
"region": "eastus2",
"platform": "Azure",
"systemService": "",
"addressPrefixes": [
"13.68.0.0/17",
"13.77.64.0/18",
"13.104.147.0/25",
...
]
}
}
]
}
File systems
{% data variables.product.prodname_dotcom %} executes actions and shell commands in specific directories on the virtual machine. The file paths on virtual machines are not static. Use the environment variables {% data variables.product.prodname_dotcom %} provides to construct file paths for the home, workspace, and workflow directories.
| Directory | Environment variable | Description |
|---|---|---|
home |
HOME |
Contains user-related data. For example, this directory could contain credentials from a login attempt. |
workspace |
GITHUB_WORKSPACE |
Actions and shell commands execute in this directory. An action can modify the contents of this directory, which subsequent actions can access. |
workflow/event.json |
GITHUB_EVENT_PATH |
The POST payload of the webhook event that triggered the workflow. {% data variables.product.prodname_dotcom %} rewrites this each time an action executes to isolate file content between actions. |
For a list of the environment variables {% data variables.product.prodname_dotcom %} creates for each workflow, see "Using environment variables."
Docker container filesystem
Actions that run in Docker containers have static directories under the /github path. However, we strongly recommend using the default environment variables to construct file paths in Docker containers.
{% data variables.product.prodname_dotcom %} reserves the /github path prefix and creates three directories for actions.
/github/home/github/workspace- {% data reusables.repositories.action-root-user-required %}/github/workflow
{% if currentVersion == "free-pro-team@latest" %}
Further reading
{% endif %}