Skip to content

Commit dd812b3

Browse files
authored
GitHub Actions pricing update (#58952)
1 parent e4a63ab commit dd812b3

File tree

17 files changed

+18
-332
lines changed

17 files changed

+18
-332
lines changed

assets/example-scripts/billing/README.md

Lines changed: 0 additions & 76 deletions
This file was deleted.

content/actions/concepts/runners/self-hosted-runners.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,14 @@ topics:
1818
- CD
1919
---
2020

21-
{% data reusables.actions.self-hosted-price-note %}
22-
2321
A self-hosted runner is a system that you deploy and manage to execute jobs from {% data variables.product.prodname_actions %} on {% data variables.product.github %}.
2422

2523
Self-hosted runners:
2624

2725
{% ifversion fpt or ghec %}
2826
* Give you more control of hardware, operating system, and software tools than {% data variables.product.github %}-hosted runners provide. Be aware that you are responsible for updating the operating system and all other software.
29-
* Allow you to use machines and services that your company already maintains and pays to use.{% endif %} {% ifversion actions-cloud-platform-march %}
30-
* Add little to your bill for actions usage because you pay only for using the actions cloud platform. See [AUTOTITLE](/billing/concepts/product-billing/github-actions).{% elsif fpt or ghec %}
31-
* Are currently free to use with {% data variables.product.prodname_actions %}. From {% data variables.actions.self_hosted_runner_charge_date %}, you will see a small per-minute charge for using the actions cloud platform in your bill for actions usage. See [AUTOTITLE](/billing/concepts/product-billing/github-actions).{% endif %} {% ifversion ghes %}
27+
* Allow you to use machines and services that your company already maintains and pays to use.{% endif %}
3228
* Are free to use with {% data variables.product.prodname_actions %}, but you are responsible for the cost of maintaining your runner machines.
33-
* Can use cloud services or local machines that you already pay for.{% endif %}
3429
* Let you create custom hardware configurations that meet your needs with processing power or memory to run larger jobs, install software available on your local network.
3530
* Receive automatic updates for the self-hosted runner application only, though you may disable automatic updates of the runner.
3631
* Don't need to have a clean instance for every job execution.{% ifversion ghec or ghes %}

content/actions/how-tos/manage-runners/self-hosted-runners/add-runners.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ Before you add a self-hosted runner, you should understand what they are and how
2929
Additionally, you must meet the following requirements:
3030
{% data reusables.actions.self-hosted-runners-prerequisites %}
3131

32-
{% data reusables.actions.self-hosted-price-note %}
33-
3432
## Adding a self-hosted runner to a repository
3533

3634
You can add self-hosted runners to a single repository. To add a self-hosted runner to a user repository, you must be the repository owner. For an organization repository, {% ifversion custom-org-roles %}you must be an organization owner, have admin access to the repository, or have the “Manage organization runners and runner groups” permission.{% else %}you must be an organization owner or have admin access to the repository.{% endif %}

content/actions/how-tos/manage-runners/self-hosted-runners/use-in-a-workflow.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ versions:
1515
ghec: '*'
1616
---
1717

18-
{% data reusables.actions.self-hosted-price-note %}
19-
2018
{% data reusables.actions.enterprise-github-hosted-runners %}
2119

2220
{% ifversion repository-actions-runners %}

content/actions/reference/runners/self-hosted-runners.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ versions:
1818
type: overview
1919
---
2020

21-
{% data reusables.actions.self-hosted-price-note %}
22-
2321
## Requirements for self-hosted runner machines
2422

2523
You can use a machine as a self-hosted runner as long as it meets these requirements:

content/admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,7 @@ You can use policies to control how enterprise members use {% data variables.pro
2727

2828
## Adding runners
2929

30-
To run {% data variables.product.prodname_actions %} workflows, you need to use runners. {% data reusables.actions.about-runners %} You can use {% data variables.product.github %}-hosted runners or add self-hosted runners.
31-
32-
* **{% data variables.product.github %}-hosted runners:** Available immediately. Your plan includes some free usage of standard runners, after this you pay for processing time and storage.
33-
* **Self-hosted runners:** You need to add and maintain them. {% ifversion actions-cloud-platform-march %}These runners add little to your bill for actions usage because you are charged only for using the {% data variables.product.prodname_actions %} cloud platform. After you have used the free minutes included in your plan, you pay $0.002 USD per minute of processing time.{% elsif fpt or ghec %}Use is currently free. From {% data variables.actions.self_hosted_runner_charge_date %}, you will pay a per-minute fee for using the cloud platform.{% endif %}
34-
35-
For more information:
36-
37-
* [AUTOTITLE](/billing/concepts/product-billing/github-actions)
38-
* [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)
30+
To run {% data variables.product.prodname_actions %} workflows, you need to use runners. {% data reusables.actions.about-runners %} If you use {% data variables.product.company_short %}-hosted runners, you will be billed based on consumption after exhausting the minutes included in your plan, whereas self-hosted runners are free. For more information, see [AUTOTITLE](/billing/managing-billing-for-github-actions/about-billing-for-github-actions).
3931

4032
If you choose self-hosted runners, you can add runners at the enterprise, organization, or repository levels. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners).
4133

content/billing/concepts/product-billing/github-actions.md

Lines changed: 11 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,14 @@ shortTitle: GitHub Actions
2323
contentType: concepts
2424
---
2525

26-
{% data reusables.billing.actions-price-changes %}
27-
2826
## How use of {% data variables.product.prodname_actions %} is measured
2927

30-
{% data variables.product.prodname_actions %} usage is measured and charged according to runner type and repository visibility.
28+
{% data variables.product.prodname_actions %} usage is **free** for **self-hosted runners** and for **public repositories** that use standard {% data variables.product.github %}-hosted runners. See [AUTOTITLE](/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job#standard-github-hosted-runners-for-public-repositories).
3129

32-
* **Standard, {% data variables.product.github %}-hosted runners**
33-
* Public repositories: Free to use, see [AUTOTITLE](/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job#standard-github-hosted-runners-for-public-repositories).
34-
* Private and internal repositories: Free until your plan quota is empty, then billed for minutes and storage use
35-
* **Larger, {% data variables.product.github %}-hosted runners**: Billed for minutes and storage
36-
* **Self-hosted runners on the {% data variables.product.prodname_actions %} cloud platform**: Free until your plan quota is empty, then billed for cloud platform use{% ifversion actions-cloud-platform-march %}<!--Nothing to display-->{% elsif fpt or ghec %} from {% data variables.actions.self_hosted_runner_charge_date %}{% endif %}
30+
For **private repositories**, each {% data variables.product.github %} account receives a quota of free minutes, artifact storage, and cache storage for use with {% data variables.product.github %}-hosted runners, depending on the account's plan. Any usage beyond the included amounts is billed to your account.
3731

38-
Each {% data variables.product.github %} account receives a quota of free minutes, artifact storage, and cache storage for use with {% data variables.product.github %}-hosted runners, depending on the account's plan. Any usage beyond the included amounts is billed to your account. Minutes reset every month, while artifact and cache storage usage do not.
32+
* **Minutes:** Your free minutes reset to the full amount at the start of each billing cycle. Minutes usage is charged to the repository owner, not the person who triggered the workflow runs.
33+
* **Storage:** Storage charges accumulate throughout the month based on hourly usage. Your accrued storage charges reset to zero at the start of each billing cycle.
3934

4035
> [!TIP]
4136
> Anyone with write access to a repository can run actions. Any costs of running the actions are billed to the repository owner.
@@ -84,41 +79,28 @@ Your monthly bill converts GB-Hours to GB-Months by dividing by the hours in the
8479

8580
### Examples of how usage is measured
8681

87-
{% data variables.product.github %}-hosted runners:
88-
8982
* If you run a workflow on a Linux runner and it takes 10 minutes to complete, you'll use 10 minutes of the repository owner's allowance. If the workflow generates a 10 MB artifact, then you'll also use 10 MB of the repository owner's artifact storage allowance.
9083
* If you run a workflow that normally takes 10 minutes and it fails after 5 minutes because a dependency isn't available, you'll use 5 minutes of the repository owner's allowance. If you fix the problem and re-run the workflow successfully, in total you'll use 15 minutes of the repository owner's allowance.
9184
* If you run a workflow that generates many log files and a long job summary, these files do not count towards the repository owner's artifact storage allowance.
9285
* Cache storage usage is measured by the peak usage for each hour. Included usage is 10 GB per repository. For a given hour, if a repository has a peak cache usage of 15 GB, then the repository owner will be charged for the 5 GB of usage above the 10 GB included for that hour. The repository owner will only be charged if the repository cache storage limit has been configured higher than the included usage.
9386
* Additional cache storage is $0.07 per GiB, per month.
9487

95-
Self-hosted runners:
96-
97-
{% ifversion actions-cloud-platform-march %}
98-
* If you run a workflow on a self-hosted runner and it takes 10 minutes to complete, the repository owner will be billed for 10 minutes use of the {% data variables.product.prodname_actions %} cloud platform.{% elsif fpt or ghec %}
99-
* Currently, all use of self-hosted runners is free.
100-
* From {% data variables.actions.self_hosted_runner_charge_date %}, if you run a workflow on a self-hosted runner and it takes 10 minutes to complete, the repository owner will be billed for 10 minutes use of the {% data variables.product.prodname_actions %} cloud platform.
101-
{% endif %}
102-
10388
## Free use of {% data variables.product.prodname_actions %}
10489

105-
The following amounts of time for standard {% data variables.product.github %}-hosted runners, artifact storage, and cache storage are included in your {% data variables.product.github %} plan. At the start of each month, the minutes used by the account are reset to zero.
90+
The following amounts of time for standard runners, artifact storage, and cache storage are included in your {% data variables.product.github %} plan. At the start of each month, the minutes used by the account are reset to zero.
10691

10792
{% data reusables.billing.actions-included-quotas %}
10893

109-
Standard {% data variables.product.github %}-hosted or self-hosted runner usage **on public repositories will remain free**.
110-
111-
The use of standard {% data variables.product.github %}-hosted runners is also free:
112-
94+
The use of standard {% data variables.product.github %}-hosted runners is free:
95+
* In public repositories
11396
* For {% data variables.product.prodname_pages %}
11497
* For {% data variables.product.prodname_dependabot %}
11598
* For the agentic features ({% data variables.release-phases.public_preview %}) in {% data variables.copilot.copilot_code-review %}
11699

117100
> [!NOTE]
118101
>
119-
> * **Self-hosted runners:** {% ifversion actions-cloud-platform-march %}Use minutes from your plan until your quota is exhausted. You are then charged for additional processing time used.{% elsif fpt or ghec %}Are free to use until {% data variables.actions.self_hosted_runner_charge_date %}.{% endif %}
120-
> * **Larger runners:** Are always charged for, even when used by public repositories or when you have quota available from your plan.
121-
> * * The storage amounts shown are **shared** with {% data variables.product.prodname_registry %}. This means your total storage across Actions artifacts, Actions caches, and Packages cannot exceed the included amount for your plan.
102+
> * Larger runners are always charged for, even when used by public repositories or when you have quota available from your plan.
103+
> * The storage amounts shown are **shared** with {% data variables.product.prodname_registry %}. This means your total storage across Actions artifacts, Actions caches, and Packages cannot exceed the included amount for your plan.
122104
123105
## Using more than your included quota
124106

@@ -130,12 +112,6 @@ You pay for any additional use above your quota using the payment method set up
130112

131113
For {% data variables.product.github %}-hosted runners, storage is billed based on hourly usage of artifacts and caches throughout the month. Minutes are calculated based on the total processing time used by each runner type during the month.
132114

133-
{% ifversion actions-cloud-platform-march %}
134-
For self-hosted runners, use of the {% data variables.product.prodname_actions %} cloud platform is based on the total processing time used across all workflows during the month.
135-
{% elsif fpt or ghec %}
136-
From {% data variables.actions.self_hosted_runner_charge_date %}, use of the {% data variables.product.prodname_actions %} cloud platform by self-hosted runners will be based on the total processing time used across all workflows during the month.
137-
{% endif %}
138-
139115
* To estimate costs for paid usage, use the {% data variables.product.github %} [pricing calculator](https://github.com/pricing/calculator?feature=actions).
140116
* To view your current costs, see [AUTOTITLE](/billing/managing-billing-for-your-products/viewing-your-product-usage).
141117

@@ -144,7 +120,7 @@ From {% data variables.actions.self_hosted_runner_charge_date %}, use of the {%
144120
145121
### Baseline minute costs
146122

147-
Each type of runner hosted by {% data variables.product.github %} has a cost per-minute that is determined by the operating system and processing power.{% ifversion actions-cloud-platform-march %} Self-hosted runners have a flat cost per-minute of $0.002 USD for use of the cloud platform.{% endif %}
123+
Each type of runner hosted by {% data variables.product.github %} has a cost per-minute that is determined by the operating system and processing power.
148124

149125
For example, jobs that run on Windows and macOS runners hosted by {% data variables.product.github %} cost more to run than jobs on Linux runners.
150126

@@ -161,18 +137,7 @@ For example, if your organization uses {% data variables.product.prodname_team %
161137
* 2,000 Windows minutes at $0.016 USD per minute = $32 USD.
162138

163139
>[!TIP]
164-
> The cost for these runners will reduce from {% data variables.actions.self_hosted_runner_charge_date %}.
165-
166-
### Example minutes cost calculation for self-hosted runners
167-
168-
{% ifversion actions-cloud-platform-march %}
169-
For example, if you use 5,000 minutes of processing time on self-hosted runners this will cost $10 USD for using the {% data variables.product.prodname_actions %} cloud platform.
170-
171-
{% elsif fpt or ghec %}
172-
From **{% data variables.actions.self_hosted_runner_charge_date %}**, regardless of your plan, using 5,000 minutes on self-hosted runners would have a total actions minutes cost of $10 USD for using the {% data variables.product.prodname_actions %} cloud platform.
173-
{% endif %}
174-
175-
Calculation: 5,000 * $0.002 USD per minute = $10 USD
140+
> The cost for these runners will reduce from January 1, 2026.
176141
177142
### Example artifact storage cost calculation
178143

content/billing/reference/actions-runner-pricing.md

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Actions runner pricing
33
shortTitle: Actions runner pricing
4-
intro: Reference information for calculating the cost of using different types of runners.
4+
intro: Reference information for calculating the cost of using different {% data variables.product.github %}-hosted runners.
55
versions:
66
fpt: "*"
77
ghec: "*"
@@ -14,24 +14,8 @@ redirect_from:
1414
- /billing/reference/actions-minute-multipliers
1515
---
1616

17-
{% data reusables.billing.actions-price-changes %}
18-
1917
{% data variables.product.github %} rounds the minutes and partial minutes each job uses up to the nearest whole minute.
2018

21-
## Self-hosted runners
22-
23-
{% ifversion actions-cloud-platform-march %}
24-
The cost of using a self-hosted runner on the {% data variables.product.prodname_actions %} cloud platform is $0.002 USD per minute.
25-
{% elsif fpt or ghec %}
26-
From {% data variables.actions.self_hosted_runner_charge_date %}, the cost of using a self-hosted runner on the {% data variables.product.prodname_actions %} cloud platform will be $0.002 USD per minute.
27-
{% endif %}
28-
29-
The cost of using the {% data variables.product.prodname_actions %} cloud platform is included in the per-minute cost of all {% data variables.product.github %}-hosted runners.
30-
31-
## Standard {% data variables.product.github %}-hosted runners
32-
33-
These runners will use minutes included in your quota to run workflows in private and internal repositories until the quota is used up.
34-
3519
{% data reusables.billing.actions-standard-runner-prices %}
3620

3721
## x64-powered {% data variables.actions.hosted_runners %}

0 commit comments

Comments
 (0)