Skip to content
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
76 changes: 0 additions & 76 deletions assets/example-scripts/billing/README.md

This file was deleted.

7 changes: 1 addition & 6 deletions content/actions/concepts/runners/self-hosted-runners.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,14 @@ topics:
- CD
---

{% data reusables.actions.self-hosted-price-note %}

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

Self-hosted runners:

{% ifversion fpt or ghec %}
* 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.
* Allow you to use machines and services that your company already maintains and pays to use.{% endif %} {% ifversion actions-cloud-platform-march %}
* 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 %}
* 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 %}
* Allow you to use machines and services that your company already maintains and pays to use.{% endif %}
* Are free to use with {% data variables.product.prodname_actions %}, but you are responsible for the cost of maintaining your runner machines.
* Can use cloud services or local machines that you already pay for.{% endif %}
* 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.
* Receive automatic updates for the self-hosted runner application only, though you may disable automatic updates of the runner.
* Don't need to have a clean instance for every job execution.{% ifversion ghec or ghes %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ Before you add a self-hosted runner, you should understand what they are and how
Additionally, you must meet the following requirements:
{% data reusables.actions.self-hosted-runners-prerequisites %}

{% data reusables.actions.self-hosted-price-note %}

## Adding a self-hosted runner to a repository

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 %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ versions:
ghec: '*'
---

{% data reusables.actions.self-hosted-price-note %}

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

{% ifversion repository-actions-runners %}
Expand Down
2 changes: 0 additions & 2 deletions content/actions/reference/runners/self-hosted-runners.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ versions:
type: overview
---

{% data reusables.actions.self-hosted-price-note %}

## Requirements for self-hosted runner machines

You can use a machine as a self-hosted runner as long as it meets these requirements:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,7 @@ You can use policies to control how enterprise members use {% data variables.pro

## Adding runners

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.

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

For more information:

* [AUTOTITLE](/billing/concepts/product-billing/github-actions)
* [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)
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).

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

Expand Down
57 changes: 11 additions & 46 deletions content/billing/concepts/product-billing/github-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,14 @@ shortTitle: GitHub Actions
contentType: concepts
---

{% data reusables.billing.actions-price-changes %}

## How use of {% data variables.product.prodname_actions %} is measured

{% data variables.product.prodname_actions %} usage is measured and charged according to runner type and repository visibility.
{% 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).

* **Standard, {% data variables.product.github %}-hosted runners**
* 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).
* Private and internal repositories: Free until your plan quota is empty, then billed for minutes and storage use
* **Larger, {% data variables.product.github %}-hosted runners**: Billed for minutes and storage
* **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 %}
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.

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

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

### Examples of how usage is measured

{% data variables.product.github %}-hosted runners:

* 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.
* 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.
* 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.
* 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.
* Additional cache storage is $0.07 per GiB, per month.

Self-hosted runners:

{% ifversion actions-cloud-platform-march %}
* 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 %}
* Currently, all use of self-hosted runners is free.
* 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.
{% endif %}

## Free use of {% data variables.product.prodname_actions %}

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

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

Standard {% data variables.product.github %}-hosted or self-hosted runner usage **on public repositories will remain free**.

The use of standard {% data variables.product.github %}-hosted runners is also free:

The use of standard {% data variables.product.github %}-hosted runners is free:
* In public repositories
* For {% data variables.product.prodname_pages %}
* For {% data variables.product.prodname_dependabot %}
* For the agentic features ({% data variables.release-phases.public_preview %}) in {% data variables.copilot.copilot_code-review %}

> [!NOTE]
>
> * **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 %}
> * **Larger runners:** Are always charged for, even when used by public repositories or when you have quota available from your plan.
> * * 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.
> * Larger runners are always charged for, even when used by public repositories or when you have quota available from your plan.
> * 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.

## Using more than your included quota

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

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.

{% ifversion actions-cloud-platform-march %}
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.
{% elsif fpt or ghec %}
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.
{% endif %}

* To estimate costs for paid usage, use the {% data variables.product.github %} [pricing calculator](https://github.com/pricing/calculator?feature=actions).
* To view your current costs, see [AUTOTITLE](/billing/managing-billing-for-your-products/viewing-your-product-usage).

Expand All @@ -144,7 +120,7 @@ From {% data variables.actions.self_hosted_runner_charge_date %}, use of the {%

### Baseline minute costs

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

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.

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

>[!TIP]
> The cost for these runners will reduce from {% data variables.actions.self_hosted_runner_charge_date %}.

### Example minutes cost calculation for self-hosted runners

{% ifversion actions-cloud-platform-march %}
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.

{% elsif fpt or ghec %}
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.
{% endif %}

Calculation: 5,000 * $0.002 USD per minute = $10 USD
> The cost for these runners will reduce from January 1, 2026.

### Example artifact storage cost calculation

Expand Down
18 changes: 1 addition & 17 deletions content/billing/reference/actions-runner-pricing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Actions runner pricing
shortTitle: Actions runner pricing
intro: Reference information for calculating the cost of using different types of runners.
intro: Reference information for calculating the cost of using different {% data variables.product.github %}-hosted runners.
versions:
fpt: "*"
ghec: "*"
Expand All @@ -14,24 +14,8 @@ redirect_from:
- /billing/reference/actions-minute-multipliers
---

{% data reusables.billing.actions-price-changes %}

{% data variables.product.github %} rounds the minutes and partial minutes each job uses up to the nearest whole minute.

## Self-hosted runners

{% ifversion actions-cloud-platform-march %}
The cost of using a self-hosted runner on the {% data variables.product.prodname_actions %} cloud platform is $0.002 USD per minute.
{% elsif fpt or ghec %}
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.
{% endif %}

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.

## Standard {% data variables.product.github %}-hosted runners

These runners will use minutes included in your quota to run workflows in private and internal repositories until the quota is used up.

{% data reusables.billing.actions-standard-runner-prices %}

## x64-powered {% data variables.actions.hosted_runners %}
Expand Down
Loading
Loading