Skip to content

Commit 4d25548

Browse files
authored
Merge pull request #37452 from github/repo-sync
Repo sync
2 parents 3855515 + 576fe2d commit 4d25548

File tree

42 files changed

+297
-255
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+297
-255
lines changed

content/actions/administering-github-actions/usage-limits-billing-and-administration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ GitHub Actions usage is free for {% data variables.product.prodname_ghe_server %
4040
There are some limits on {% data variables.product.prodname_actions %} usage when using {% data variables.product.prodname_dotcom %}-hosted runners. These limits are subject to change.
4141

4242
> [!NOTE]
43-
> For self-hosted runners, different usage limits apply. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#usage-limits).
43+
> For self-hosted runners, different usage limits apply. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/usage-limits-for-self-hosted-runners).
4444
4545
* **Job execution time** - Each job in a workflow can run for up to 6 hours of execution time. If a job reaches this limit, the job is terminated and fails to complete.
4646
{% data reusables.actions.usage-workflow-run-time %}
@@ -72,7 +72,7 @@ There are some limits on {% data variables.product.prodname_actions %} usage whe
7272
{% data reusables.actions.usage-workflow-queue-limits %}
7373

7474
{% else %}
75-
Usage limits apply to self-hosted runners. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#usage-limits).
75+
Usage limits apply to self-hosted runners. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/usage-limits-for-self-hosted-runners).
7676
{% endif %}
7777

7878
{% ifversion fpt or ghec %}

content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ You can find the definition of ARC's runner image in [this Dockerfile](https://g
101101

102102
You can create your own runner image that meets your requirements. Your runner image must fulfill the following conditions.
103103

104-
* Use a base image that can run the self-hosted runner application. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners).
104+
* Use a base image that can run the self-hosted runner application. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners).
105+
105106
* The [runner binary](https://github.com/actions/runner/releases) must be placed under `/home/runner/` and launched using `/home/runner/run.sh`.
106107
* If you use Kubernetes mode, the [runner container hooks](https://github.com/actions/runner-container-hooks/releases) must be placed under `/home/runner/k8s`.
107108

content/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners.md

Lines changed: 22 additions & 192 deletions
Large diffs are not rendered by default.

content/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@ You can add a self-hosted runner to a repository, an organization, or an enterpr
1919

2020
If you are an organization or enterprise administrator, you might want to add your self-hosted runners at the organization or enterprise level. This approach makes the runner available to multiple repositories in your organization or enterprise, and also lets you to manage your runners in one place.
2121

22-
For information on supported operating systems for self-hosted runners, or using self-hosted runners with a proxy server, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners).
23-
2422
> [!WARNING]
2523
> {% data reusables.actions.self-hosted-runner-security %}
2624
>
27-
> For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories).
25+
> For more information, see [AUTOTITLE](/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions).
2826
2927
You can set up automation to scale the number of self-hosted runners. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners).
3028

@@ -105,6 +103,7 @@ For more information on changing runner group access settings, see [AUTOTITLE](/
105103

106104
## Further reading
107105

106+
* [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)
108107
* [AUTOTITLE](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise)
109108

110109
{% endif %}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
title: Communicating with self-hosted runners
3+
shortTitle: Self-hosted runner communication
4+
intro: 'Your self-hosted runners can communicate with {% ifversion fpt or ghec %}{% data variables.product.github %}{% else %}{% data variables.location.product_location_enterprise %} and {% data variables.product.prodname_dotcom_the_website %}{% endif %}'
5+
versions:
6+
fpt: '*'
7+
ghes: '*'
8+
ghec: '*'
9+
type: overview
10+
---
11+
12+
A self-hosted runner connects to {% ifversion fpt or ghec %}{% data variables.product.github %}{% else %}{% data variables.location.product_location_enterprise %}{% endif %} to receive job assignments and to download new versions of the runner application. The self-hosted runner uses an {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} long poll that opens a connection to {% data variables.product.github %} for 50 seconds, and if no response is received, it then times out and creates a new long poll. The application must be running on the machine to accept and run {% data variables.product.prodname_actions %} jobs.
13+
14+
{% data reusables.actions.runner-app-open-source %} {% ifversion fpt or ghec %} When a new version is released, the runner application automatically updates itself when a job is assigned to the runner, or within a week of release if the runner hasn't been assigned any jobs. {% else ifversion ghes %} When a new version is released, the runner application will automatically update within 24 hours. {% endif %}
15+
{% ifversion ghes %}
16+
17+
> [!NOTE]
18+
> {% data reusables.actions.upgrade-runners-before-upgrade-ghes %}
19+
20+
{% endif %}
21+
22+
{% data reusables.actions.self-hosted-runner-auto-removal %}
23+
24+
{% data reusables.actions.self-hosted-runner-ports-protocols %}
25+
26+
{% ifversion fpt or ghec %}
27+
Since the self-hosted runner opens a connection to {% data variables.product.github %}, you do not need to allow {% data variables.product.prodname_dotcom %} to make inbound connections to your self-hosted runner.
28+
{% elsif ghes %}
29+
Only an outbound connection from the runner to {% data variables.product.prodname_ghe_server %} is required. There is no need for an inbound connection from {% data variables.product.prodname_ghe_server %} to the runner.
30+
For caching to work, the runner must be able to communicate with the blob storage and directly download content from it.
31+
{%- endif %}
32+
33+
{% ifversion ghes %}
34+
35+
{% data variables.product.prodname_ghe_server %} must accept inbound connections from your runners over HTTP(S) at {% data variables.location.product_location %}'s hostname and API subdomain, and your runners must allow outbound connections over HTTP(S) to {% data variables.location.product_location %}'s hostname and API subdomain.
36+
37+
{% endif %}
38+
39+
{% ifversion fpt or ghec %}
40+
41+
You must ensure that the machine has the appropriate network access with at least 70 kilobits per second upload and download speed to communicate with the {% data variables.product.prodname_dotcom %} hosts listed below. Some hosts are required for essential runner operations, while other hosts are only required for certain functionality.
42+
43+
You can use the REST API to get meta information about {% data variables.product.company_short %}, including the IP addresses of {% data variables.product.company_short %} services. See [AUTOTITLE](/rest/meta/meta).
44+
45+
{% data reusables.actions.domain-name-cname-recursive-firewall-rules %}
46+
47+
{% data reusables.actions.runner-essential-communications %}
48+
49+
In addition, your workflow may require access to other network resources.
50+
51+
If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. See [Managing allowed IP addresses for your organization](/{% ifversion fpt %}enterprise-cloud@latest/{% endif %}/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list) or [Enforcing policies for security settings in your enterprise](/{% ifversion fpt %}enterprise-cloud@latest/{% endif %}admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise){% ifversion fpt %} in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}.{% endif %}
52+
53+
{% else %}
54+
55+
{% ifversion ghes %}Self-hosted runners do not require any external internet access in order to function. As a result, you can use network routing to direct communication between the self-hosted runner and {% data variables.product.prodname_ghe_server %}. For example, you can assign a private IP address to your self-hosted runner and configure routing to send traffic to {% data variables.product.prodname_ghe_server %}, with no need for traffic to traverse a public network.{% endif %}
56+
57+
{% endif %}
58+
59+
{% ifversion ghes %}
60+
61+
## Communication between self-hosted runners and {% data variables.product.prodname_dotcom_the_website %}
62+
63+
Self-hosted runners do not need to connect to {% data variables.product.prodname_dotcom_the_website %} unless you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions for {% data variables.product.prodname_ghe_server %}. For more information, see [AUTOTITLE](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise).
64+
65+
If you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions, then the self-hosted runner will connect directly to {% data variables.product.prodname_dotcom_the_website %} to download actions. You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} URLs listed below.
66+
67+
```shell copy
68+
github.com
69+
api.github.com
70+
codeload.github.com
71+
pkg.actions.githubusercontent.com
72+
```
73+
74+
{% data reusables.actions.domain-name-cname-recursive-firewall-rules %}
75+
76+
{% endif %}
77+
78+
## Further reading
79+
80+
* [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/using-a-proxy-server-with-self-hosted-runners)
81+
* [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners#troubleshooting-network-connectivity)

content/actions/hosting-your-own-runners/managing-self-hosted-runners/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ versions:
88
ghec: '*'
99
children:
1010
- /about-self-hosted-runners
11+
- /communicating-with-self-hosted-runners
12+
- /supported-architectures-and-operating-systems-for-self-hosted-runners
13+
- /usage-limits-for-self-hosted-runners
1114
- /adding-self-hosted-runners
1215
- /autoscaling-with-self-hosted-runners
1316
- /running-scripts-before-or-after-a-job

content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ config.cmd --check --url https://github.com/YOUR-ORG/YOUR-REPO --pat GHP_ABCD123
7171

7272
The script tests each service, and outputs either a `PASS` or `FAIL` for each one. If you have any failing checks, you can see more details on the problem in the log file for the check. The log files are located in the `_diag` directory where you installed the runner application, and the path of the log file for each check is shown in the console output of the script.
7373

74-
If you have any failing checks, you should also verify that your self-hosted runner machine meets all the communication requirements. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#communication-requirements).
74+
If you have any failing checks, you should also verify that your self-hosted runner machine meets all the communication requirements. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/communicating-with-self-hosted-runners).
7575

7676
### Disabling TLS certificate verification
7777

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: Supported architectures and operating systems for self-hosted runners
3+
shortTitle: Supported platforms
4+
intro: 'The following processor architectures and operating systems are supported for the self-hosted runner application.'
5+
versions:
6+
fpt: '*'
7+
ghes: '*'
8+
ghec: '*'
9+
type: overview
10+
---
11+
12+
## Linux
13+
14+
* Red Hat Enterprise Linux 8 or later
15+
* CentOS 8 or later
16+
* Oracle Linux 8 or later
17+
* Fedora 29 or later
18+
* Debian 10 or later
19+
* Ubuntu 20.04 or later
20+
* Linux Mint 20 or later
21+
* openSUSE 15.2 or later
22+
* SUSE Enterprise Linux (SLES) 15 SP2 or later
23+
24+
## Windows
25+
26+
* Windows 10 64-bit
27+
* Windows 11 64-bit
28+
* Windows Server 2016 64-bit
29+
* Windows Server 2019 64-bit
30+
* Windows Server 2022 64-bit
31+
32+
## macOS
33+
34+
* macOS 11.0 (Big Sur) or later
35+
36+
## Supported processor architectures
37+
38+
* `x64` - Linux, macOS, Windows.
39+
* `ARM64` - Linux, macOS{% ifversion actions-windows-arm %}, Windows (currently in {% data variables.release-phases.public_preview %}){% endif %}.
40+
* `ARM32` - Linux.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Usage limits for self-hosted runners
3+
shortTitle: Usage limits
4+
intro: 'There are some limits on {% data variables.product.prodname_actions %} usage when using self-hosted runners. These limits are subject to change.'
5+
versions:
6+
fpt: '*'
7+
ghes: '*'
8+
ghec: '*'
9+
type: overview
10+
---
11+
12+
{% ifversion fpt or ghec or ghes > 3.12 %}- **Job execution time** - Each job in a workflow can run for up to 5 days of execution time. If a job reaches this limit, the job is terminated and fails to complete.{% endif %}
13+
{% data reusables.actions.usage-workflow-run-time %}
14+
* **Job queue time** - Each job for self-hosted runners that has been queued for at least 24 hours will be canceled. The actual time in queue can reach up to 48 hours before cancellation occurs. If a self-hosted runner does not start executing the job within this limit, the job is terminated and fails to complete.
15+
{% data reusables.actions.usage-api-requests %}
16+
* **Job matrix** - {% data reusables.actions.usage-matrix-limits %}
17+
{% data reusables.actions.usage-workflow-queue-limits %}
18+
* **Registering self-hosted runners** - You can have a maximum of 10,000 self-hosted runners in one runner group. If this limit is reached, adding a new runner will not be possible.

content/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,7 @@ When routing a job to a self-hosted runner, {% data variables.product.prodname_d
107107
* If the runner doesn't pick up the assigned job within 60 seconds, the job is re-queued so that a new runner can accept it.
108108
* If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner that matches the job's `runs-on` labels and groups, then the job will remain queued until a runner comes online.
109109
* If the job remains queued for more than 24 hours, the job will fail.
110+
111+
## Workflow run continuity
112+
113+
{% data reusables.actions.runner-workflow-continuity %}

content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ For third-party images, such as the images for ARM-powered runners, you can find
340340

341341
{% ifversion fpt or ghec %}**Self-hosted**{% elsif ghes %}Self-hosted{% endif %} runners for {% data variables.product.github %} do not have guarantees around running in ephemeral clean virtual machines, and can be persistently compromised by untrusted code in a workflow.
342342

343-
{% ifversion fpt or ghec %}As a result, self-hosted runners should almost [never be used for public repositories](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#self-hosted-runner-security) on {% data variables.product.github %}, because any user can open pull requests against the repository and compromise the environment. Similarly, be{% elsif ghes %}Be{% endif %} cautious when using self-hosted runners on private or internal repositories, as anyone who can fork the repository and open a pull request (generally those with read access to the repository) are able to compromise the self-hosted runner environment, including gaining access to secrets and the `GITHUB_TOKEN` which, depending on its settings, can grant write access to the repository. Although workflows can control access to environment secrets by using environments and required reviews, these workflows are not run in an isolated environment and are still susceptible to the same risks when run on a self-hosted runner.
343+
{% ifversion fpt or ghec %}As a result, self-hosted runners should almost [never be used for public repositories](/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions) on {% data variables.product.github %}, because any user can open pull requests against the repository and compromise the environment. Similarly, be{% elsif ghes %}Be{% endif %} cautious when using self-hosted runners on private or internal repositories, as anyone who can fork the repository and open a pull request (generally those with read access to the repository) are able to compromise the self-hosted runner environment, including gaining access to secrets and the `GITHUB_TOKEN` which, depending on its settings, can grant write access to the repository. Although workflows can control access to environment secrets by using environments and required reviews, these workflows are not run in an isolated environment and are still susceptible to the same risks when run on a self-hosted runner.
344344

345345
{% data reusables.actions.disable-selfhosted-runners-crossrefs %}
346346

0 commit comments

Comments
 (0)