1
0
mirror of synced 2025-12-19 18:10:59 -05:00

[16 December, 2025] Feature branch for self-hosted runner billing part 1 (#58631)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: cmuto09 <cmuto09@github.com>
Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com>
Co-authored-by: Jules <19994093+jules-p@users.noreply.github.com>
Co-authored-by: Laura Coursen <lecoursen@github.com>
Co-authored-by: Collin McNeese <collinmcneese@github.com>
This commit is contained in:
Felicity Chapman
2025-12-16 16:36:50 +00:00
committed by GitHub
parent ac5e8a8bdf
commit ce33310edb
21 changed files with 539 additions and 79 deletions

View File

@@ -23,17 +23,22 @@ 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 **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).
{% data variables.product.prodname_actions %} usage is measured and charged according to runner type and repository visibility.
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.
* **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 %}
* **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.
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.
> [!TIP]
> Anyone with write access to a repository can run actions without using minutes for their personal account.
> Anyone with write access to a repository can run actions. Any costs of running the actions are billed to the repository owner.
## How storage billing works
@@ -79,22 +84,28 @@ Your monthly bill converts GB-Hours to GB-Months by dividing by the hours in the
### Examples of how usage is measured
* If you run a workflow on a standard 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.
{% 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 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 {% 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.
{% data reusables.billing.actions-included-quotas %}
> [!NOTE]
> * Included minutes cannot be used for larger runners. These runners will always be charged for, even when used by public repositories.
> * 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.
The use of standard {% data variables.product.github %}-hosted runners is free:
* In public repositories
@@ -102,43 +113,65 @@ The use of standard {% data variables.product.github %}-hosted runners is free:
* 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.
## Using more than your included quota
If your account does not have a valid payment method on file, usage is blocked once you use up your quota.
If your account does not have a valid payment method on file, usage is blocked once you use up your quota. Usage of larger runners is always blocked until you set up a payment method.
## Paying for additional {% data variables.product.prodname_actions %} use
You pay for any additional use above your quota using the payment method set up for your {% data variables.product.github %} account. See [AUTOTITLE](/billing/how-tos/set-up-payment/manage-payment-info).
Storage is billed based on hourly usage of artifacts and caches throughout the month. Minutes are calculated based on the total processing time used on each runner type during the month.
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.
* To estimate costs for paid {% data variables.product.prodname_actions %} usage, use the {% data variables.product.github %} [pricing calculator](https://github.com/pricing/calculator?feature=actions).
* To view your current minutes, artifact, and cache storage, see [AUTOTITLE](/billing/managing-billing-for-your-products/viewing-your-product-usage).
{% 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).
> [!NOTE]
> The billing dashboard may show your Actions usage as a dollar amount ("spend") rather than raw minutes. This amount already reflects any applicable minute multipliers.
> The billing dashboard may show your Actions usage as a dollar amount ("spend") rather than raw minutes. This amount already reflects any applicable minute costs.
### Minute multipliers
### Baseline minute costs
Each type of runner has a minute multiplier 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 %} consume minutes at 2 and 10 times the rate that jobs on Linux runners consume.
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 %}
| Operating system | Minute multiplier |
| ---------------- | :---------------: |
| Linux | 1 |
| Windows | 2 |
| macOS | 10 |
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.
For full details of minute multipliers for {% data variables.product.github %}-hosted runners, see [AUTOTITLE](/billing/reference/actions-minute-multipliers).
{% data reusables.billing.actions-standard-runner-prices %}
### Example minutes cost calculation
For full details of minute costs for different types of runners, see [AUTOTITLE](/billing/reference/actions-runner-pricing).
For example, if your organization uses {% data variables.product.prodname_team %}, using 5,000 minutes beyond the included quota would have a total actions minutes cost of $56 USD, with the use of both Linux and Windows runners.
### Example minutes cost calculation for {% data variables.product.github %}-hosted runners
For example, if your organization uses {% data variables.product.prodname_team %}, using 5,000 minutes beyond the included quota on {% data variables.product.github %}-hosted runners would have a total actions minutes cost of $56 USD currently, if you used baseline Linux and Windows runners.
* 5,000 (3,000 Linux and 2,000 Windows) minutes = $56 USD ($24 USD + $32 USD).
* 3,000 Linux minutes at $0.008 USD per minute = $24 USD.
* 2,000 Windows minutes at $0.016 USD per minute = $32 USD.
This example assumes that the baseline runner was used for each operating system.
>[!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
### Example artifact storage cost calculation

View File

@@ -1,7 +1,7 @@
---
title: Actions runner pricing
shortTitle: Actions runner pricing
intro: Reference information for calculating the cost of using different {% data variables.product.github %}-hosted runners.
intro: Reference information for calculating the cost of using different types of runners.
versions:
fpt: "*"
ghec: "*"
@@ -14,60 +14,69 @@ 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.
## Standard runners
## Self-hosted runners
| Operating system | Per-minute rate (USD) |
| ------------------------------------ | --------------------- |
| Linux 1-core | $0.002 |
| Linux 2-core | $0.008 |
| Windows 2-core | $0.016 |
| macOS 3-core or 4-core (M1 or Intel) | $0.08 |
{% 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 %}
| Operating system | Per-minute rate (USD) |
| --------------------- | --------------------- |
| Linux Advanced 2-core | $0.008 |
| Linux 4-core | $0.016 |
| Linux 8-core | $0.032 |
| Linux 16-core | $0.064 |
| Linux 32-core | $0.128 |
| Linux 64-core | $0.256 |
| Linux 96-core | $0.384 |
| Windows 4-core | $0.032 |
| Windows 8-core | $0.064 |
| Windows 16-core | $0.128 |
| Windows 32-core | $0.256 |
| Windows 64-core | $0.512 |
| Windows 96-core | $0.768 |
| macOS 12-core | $0.12 |
| Operating system | Billing SKU | Per-minute rate until January 1, 2026 (USD) | January 1, 2026 onward | Percentage change |
| --------------------- | -------------------------- | ----------------- |---------------|------|
| Linux Advanced 2-core | `linux_2_core_advanced` | $0.008 | $0.006 | -25% |
| Linux 4-core | `linux_4_core` | $0.016 | $0.012 | -25% |
| Linux 8-core | `linux_8_core` | $0.032 | $0.022 | -31% |
| Linux 16-core | `linux_16_core` | $0.064 | $0.042 | -34% |
| Linux 32-core | `linux_32_core` | $0.128 | $0.082 | -36% |
| Linux 64-core | `linux_64_core` | $0.256 | $0.162 | -37% |
| Linux 96-core | `linux_96_core` | $0.384 | $0.252 | -34% |
| Windows 4-core | `windows_4_core` | $0.032 | $0.022 | -31% |
| Windows 8-core | `windows_8_core` | $0.064 | $0.042 | -34% |
| Windows 16-core | `windows_16_core` | $0.128 | $0.082 | -36% |
| Windows 32-core | `windows_32_core` | $0.256 | $0.162 | -37% |
| Windows 64-core | `windows_64_core` | $0.512 | $0.322 | -37% |
| Windows 96-core | `windows_96_core` | $0.768 | $0.552 | -28% |
| macOS 12-core | `macos_l` | $0.120 | $0.077 | -36% |
## arm64-powered {% data variables.actions.hosted_runners %}
| Operating system | Per-minute rate (USD) |
| ----------------- | --------------------- |
| Linux 2-core | $0.005 |
| Linux 4-core | $0.01 |
| Linux 8-core | $0.02 |
| Linux 16-core | $0.04 |
| Linux 32-core | $0.08 |
| Linux 64-core | $0.16 |
| Windows 2-core | $0.01 |
| Windows 4-core | $0.02 |
| Windows 8-core | $0.04 |
| Windows 16-core | $0.08 |
| Windows 32-core | $0.16 |
| Windows 64-core | $0.32 |
| macOS 6-core (M1) | $0.16 |
| Operating system | Billing SKU | Per-minute rate until January 1, 2026 (USD) | January 1, 2026 onward | Percentage change |
| --------------------- | --------------------- | ----------------- |---------------|------|
| Linux 2-core | `linux_2_core_arm` | $0.005 | $0.005 | &nbsp; &nbsp; 0% |
| Linux 4-core | `linux_4_core_arm` | $0.010 | $0.008 | -20% |
| Linux 8-core | `linux_8_core_arm` | $0.020 | $0.014 | -30% |
| Linux 16-core | `linux_16_core_arm` | $0.040 | $0.026 | -35% |
| Linux 32-core | `linux_32_core_arm` | $0.080 | $0.050 | -38% |
| Linux 64-core | `linux_64_core_arm` | $0.160 | $0.098 | -39% |
| Windows 2-core | `windows_2_core_arm` | $0.010 | $0.008 | -20% |
| Windows 4-core | `windows_4_core_arm` | $0.020 | $0.014 | -30% |
| Windows 8-core | `windows_8_core_arm` | $0.040 | $0.026 | -35% |
| Windows 16-core | `windows_16_core_arm` | $0.080 | $0.050 | -38% |
| Windows 32-core | `windows_32_core_arm` | $0.160 | $0.098 | -39% |
| Windows 64-core | `windows_64_core_arm` | $0.320 | $0.194 | -39% |
| macOS 6-core (M1) | `macos_xl` | $0.160 | $0.102 | -36% |
## GPU-powered {% data variables.actions.hosted_runners %}
| Operating system | Per-minute rate (USD) |
| ---------------- | --------------------- |
| Linux 4-core | $0.07 |
| Windows 4-core | $0.14 |
| Operating system | Billing SKU | Per-minute rate until January 1, 2026 (USD) | January 1, 2026 onward | Percentage change |
| ------------------ | ------------------------ | ------------- |------------|------|
| Linux 4-core | `linux_4_core_gpu` | $0.070 | $0.052 | -26% |
| Windows 4-core | `windows_4_core_gpu` | $0.14 | $0.102 | -27% |
## Points to note about rates for runners

View File

@@ -0,0 +1,134 @@
---
title: 'Estimating the cost of using GitHub Actions on different types of runners'
intro: 'Analyze the costs and benefits of different CI/CD setups by understanding the relative costs of using {% data variables.product.github %}-hosted and self-hosted runners.'
shortTitle: 'Estimate Actions costs'
versions:
fpt: '*'
ghec: '*'
permissions: 'Users who can see the "Billing & Licensing" and "Insights" pages for an organization or enterprise on {% data variables.product.prodname_dotcom_the_website %} or {% data variables.enterprise.data_residency_site %}'
topics:
- Enterprise
- Billing
- REST
contentType: tutorials
audience:
- driver
---
As your usage of CI/CD grows, optimizing costs becomes increasingly important. With this tutorial, you can assess your current {% data variables.product.prodname_actions %} costs, estimate the impact of upcoming pricing changes, and identify configuration changes that could reduce expenses or improve efficiency. See [2026 pricing changes for {% data variables.product.prodname_actions %}](https://resources.github.com/actions/2026-pricing-changes-for-github-actions) in {% data variables.product.github %} Executive Insights.
## 1. Download past usage of {% data variables.product.prodname_actions %}
You can download a full breakdown of the costs of using {% data variables.product.github %}-hosted runners from the "Usage" view of the "Billing & licensing" tab. {% ifversion actions-cloud-platform-march %}Data for self-hosted runners is included in this report from {% data variables.actions.self_hosted_runner_charge_date %}.
<!-- expires 2026-09-01 -->
For data on self-hosted runners before {% data variables.actions.self_hosted_runner_charge_date %}, see the "Actions Usage Metrics" view of the "Insights" tab.
<!-- end expires 2026-09-01 -->
{% elsif fpt or ghec %}
Usage of self-hosted runners is available on the **Insights** tab of your organization or enterprise. From {% data variables.actions.self_hosted_runner_charge_date %}, this data will also be included in billing usage reports.
{% endif %}
### Generate report for runner usage and costs
{% data reusables.billing.nav-to-org-or-ent %}
{% data reusables.billing.access-org-or-ent-page %}
{% data reusables.billing.display-usage-view %}
1. At the top of the page, click **{% octicon "download" aria-hidden="true" %} Get usage report**.
1. Select a report type of **Summarized** and a time frame of at least three months.
1. Click **Email me the report**.
When the report is ready for you to download, you'll receive a message to your primary email account with a link to download the report. The link will expire after 24 hours.
### Get usage of self-hosted runners
<!-- expires 2026-09-01 -->
{% ifversion actions-cloud-platform-march %}
This step is needed only if you want to download data from before {% data variables.actions.self_hosted_runner_charge_date %}.
{% endif %}
<!-- end expires 2026-09-01 -->
1. Click **{% octicon "graph" aria-hidden="true" %} Insights** tab for your organization or enterprise to display additional insights.
1. In the "Insights" navigation menu, click **{% octicon "play" aria-hidden="true" %} Actions Usage Metrics** to display usage data.
1. At the top of the page, click **Period:Current month** and define a time period of at least three months.
1. In the tabbed table, click **{% octicon "stopwatch" aria-hidden="true" %} Jobs** to show all usage split by job.
1. To show only jobs that run on self-hosted runners, add a filter on runner type:
```text copy
runner_type:self-hosted
```
1. To the right of the filter box, click {% octicon "download" aria-label="Download report" %} to download the data from the table.
## 2. Summarize past usage and costs
You have downloaded one billing report, `summarizedUsageReport`, and possibly one actions usage metrics report for self-hosted runners. You need to further summarize the data from the `summarizedUsageReport` before moving to the next step, for example:
* **Get cost per runner type:** Sum costs for each `sku` for the `actions` product
* **Get usage of minutes included in your plan:** Sum minutes for each `sku` that were included in your plan, that is: `net_amount` of `0`
* Consider splitting the costs and included minutes by organization
For an example Python script that generates this summary information from a `summarizedUsageReport`, see [`summarize_actions_costs.py`](https://gist.github.com/docs-bot/98cb03ec43b716b1f8e03bcc091d069c).
>[!TIP]
> There is no change to the costs of storing artifacts and caches, so you can ignore the `actions_storage` SKU.
## 3. Estimate impact of the cost changes
Using the summaries of the recent costs of {% data variables.product.github %}-hosted runners and the minutes used by self-hosted runners, you can estimate future costs of using {% data variables.product.prodname_actions %}.
### General trend in costs
Assuming that the number of workflows you run and the time they take to complete stays similar, the impact on your future costs will vary according to the types of runners that you currently use:
* **Mostly {% data variables.product.github %}-hosted runners:** You will see lower bills for {% data variables.product.prodname_actions %}.
* **Mostly self-hosted runners:** You will probably see higher bills for actions. It makes sense to re-evaluate your split between self-hosted and {% data variables.product.github %}-hosted runners. You may find that the costs of maintaining your own runners versus using {% data variables.product.github %}-hosted runners are more evenly balanced.
* **A mix of runner types:** You will need to assess how your costs will change with the new charging model and decide whether or not to make any changes to your runner usage.
### Detailed calculations of changes to costs
For each type of runner that you use, you can calculate how much the same usage will cost from January and from March 2026 using data from [AUTOTITLE](/billing/reference/actions-runner-pricing).
To estimate your expected spend more precisely, you can also use the [{% data variables.product.github %} pricing calculator](https://github.com/pricing/calculator?feature=actions).
In this example, the change in costs for standard {% data variables.product.github %}-hosted runners and self-hosted runners is calculated.
| Runner type | Past {% data variables.product.github %} bill | January 1, 2026 onward | March 1, 2026 onward |
|--|--|--|--|
| Linux 2-core (`actions_linux`) | _past cost_ | _past cost_ **\* 0.75** | _past cost_ **\* 0.75** |
| Windows 2-core (`actions_windows`) | _past cost_ | _past cost_ **\* 0.62** | _past cost_ **\* 0.62** |
| macOS 3-core or 4-core (`actions_macos`) | _past cost_ | _past cost_ **\* 0.77** | _past cost_ **\* 0.77** |
| Self-hosted | $0 USD | $0 USD | _Minutes used_ **\* $0.002 USD** |
The multipliers in this table reflect the change in per-minute pricing for standard {% data variables.product.github %}-hosted runners starting January 1, 2026. For self-hosted runners, billing begins on March 1, 2026, based on total minutes used.
## 4. Identify runner changes to explore
When you have estimated the impact of the charging changes on your costs, you may want to update your runner usage.
### Investing the budget freed in more powerful runners
If the billing changes free some of your budget, then you could identify the workflows that take the longest to run and update them to use larger runners hosted by {% data variables.product.github %}.
To identify the longest-running workflows, display the **Insights** tab for your enterprise or organization and display the **Actions performance metrics**. Click **Avg run time** to sort the workflows by run time.
For more information, see [AUTOTITLE](/actions/concepts/runners/larger-runners).
### Migrating workflows from self-hosted to {% data variables.product.github %}-hosted runners
If the total cost of running workflows on self-hosted runners is now similar to the cost of using {% data variables.product.github %}-hosted runners, you may want to simplify your CI/CD platform by migrating from self-hosted runners.
Some considerations:
* Do all the costs of maintaining self-hosted runners come under the same internal budget as billing for actions usage?
* Are we using all the processing time included in our {% data variables.product.github %} plan currently?
* Do any of the self-hosted runners provide specialized environments that would be difficult to replicate on a {% data variables.product.github %}-hosted runner?
> [!TIP]
> You can request that additional tools are added to {% data variables.product.github %}-hosted runners, by raising an issue with the [tool request](https://github.com/actions/runner-images/issues/new?template=tool-request.yml) template.
## Next steps
* [AUTOTITLE](/actions/tutorials/migrate-to-github-runners)

View File

@@ -13,7 +13,7 @@ children:
- /set-up-budgets
- /control-costs-at-scale
- /estimate-spending
- /estimate-actions-costs
- /gather-insights
contentType: tutorials
---