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
14 changes: 7 additions & 7 deletions content/actions/reference/limits.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ These limits are subject to change.

{% data variables.product.github %} Support **cannot** increase storage limits for {% data variables.product.prodname_actions %}.

| {% data variables.product.github %} plan | Storage | Minutes (per month)|
|------- | ------- | ---------|
| {% data variables.product.prodname_free_user %} | 500 MB | 2,000 |
| {% data variables.product.prodname_pro %} | 1 GB | 3,000 |
| {% data variables.product.prodname_free_team %} for organizations | 500 MB | 2,000 |
| {% data variables.product.prodname_team %} | 2 GB | 3,000 |
| {% data variables.product.prodname_ghe_cloud %} | 50 GB | 50,000 |
{% data reusables.billing.actions-included-quotas %}

{% ifversion fpt or ghec %}

For information about cache storage limits and how to increase them, see [Usage limits and eviction policy](/actions/reference/workflows-and-actions/dependency-caching#usage-limits-and-eviction-policy).

{% endif %}

### Private IP scaling for vnet injection on larger runners

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ versions:
ghes: '*'
ghec: '*'
type: overview
topics:
- Actions
- Workflows
---

## `cache` action usage
Expand Down Expand Up @@ -261,9 +264,25 @@ Multiple workflow runs in a repository can share caches. A cache created for a b

## Usage limits and eviction policy

{% data variables.product.prodname_dotcom %} will remove any cache entries that have not been accessed in over 7 days. There is no limit on the number of caches you can store, but the total size of all caches in a repository is limited{% ifversion ghes %}. By default, the limit is 10 GB per repository, but this limit might be different depending on policies set by your enterprise owners or repository administrators.{% else %} to 10 GB.{% endif %} {% data reusables.actions.cache-eviction-policy %}
{% data variables.product.prodname_dotcom %} applies limits to cache storage and retention to manage storage costs and prevent abuse. Understanding these limits helps you optimize your cache usage.

{% data reusables.actions.cache-eviction-process %} The cache eviction process may cause cache thrashing, where caches are created and deleted at a high frequency. To reduce this, you can review the caches for a repository and take corrective steps, such as removing caching from specific workflows. See [AUTOTITLE](/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/manage-caches).{% ifversion ghes %} You can also increase the cache size limit for a repository. For more information, see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-cache-storage-for-a-repository).
### Default limits

{% data variables.product.github %} will remove any cache entries that have not been accessed in over 7 days. There is no limit on the number of caches you can store, but the total size of all caches in a repository is limited. By default, the limit is 10 GB per repository, but this limit can be increased by enterprise owners, organization owners, or repository administrators. {% ifversion fpt or ghec %}Any usage beyond 10 GB is billed to your account.{% endif %} {% data reusables.actions.cache-eviction-policy %}

{% data reusables.actions.cache-eviction-process %} The cache eviction process may cause cache thrashing, where caches are created and deleted at a high frequency. To reduce this, you can review the caches for a repository and take corrective steps, such as removing caching from specific workflows{% ifversion fpt or ghec %} or increasing your cache size. This functionality is only available to users with a payment method on file who opt in by configuring cache settings{% endif %}. See [AUTOTITLE](/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/manage-caches).{% ifversion ghes %} You can also increase the cache size limit for a repository. For more information, see [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-cache-storage-for-a-repository).

{% endif %}
{% ifversion fpt or ghec %}

### Increasing cache size

If you want to reduce the rate at which cache entries are evicted, you can increase the storage limits for your cache in the Actions Settings. Repositories owned by users can configure up to 10 TB per repository. For repositories owned by organizations, the maximum configurable limit is determined by the organization's settings. For organizations owned by an enterprise, the maximum configurable limit is determined by the enterprise's settings. Increasing the limit beyond the default 10 GB will incur additional costs, if that storage is used.

For more information, see:
* [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-cache-settings-for-your-repository)
* [AUTOTITLE](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#managing-github-actions-cache-storage-for-your-organization)
* [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#artifact-and-log-retention)

{% endif %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,28 @@ By default, artifacts and log files generated by workflows are retained for 90 d

Changes only apply to new artifacts and log files.

{% ifversion ghec %}

### Cache settings

You can configure maximum cache retention and size limits that will apply across your entire enterprise. If you increase the "Cache size eviction limit" beyond the 10 GB included in your plan, you will be charged for any additional storage of cached entries.

By default:

* Caches are retained for 7 days before automatic deletion.
* The total cache storage limit is 10 GB per repository.

You can customize these settings to set maximum limits for cache retention and cache storage size across your enterprise:

* **Cache retention**: Configure up to 90 days for public repositories or 365 days for private and internal repositories.
* **Cache size eviction limit**: Configure up to 10,000 GB per repository.

The settings you configure at the enterprise level act as maximum limits. Organization owners can opt in to configure limits for their organization, but cannot exceed the limits set at the enterprise level. Repository administrators can opt in to configure limits for their repositories, but cannot exceed the limits set at the organization level.

For more information about cache eviction, see [AUTOTITLE](/actions/reference/workflows-and-actions/dependency-caching#usage-limits-and-eviction-policy).

{% endif %}

{% ifversion ghes %}

### Maximum and default cache size limits
Expand Down
50 changes: 28 additions & 22 deletions content/billing/concepts/product-billing/github-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,23 @@ contentType: concepts

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

For **private repositories**, each {% data variables.product.github %} account receives a quota of free minutes and artifact 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 storage usage does not.
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. 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.

### 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 storage allowance.
* 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.
* 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 storage 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.

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

The following amounts of time for standard runners and artifact 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.

|Plan | Storage | Minutes (per month)|
|------- | ------- | ---------|
| {% data variables.product.prodname_free_user %} | 500 MB | 2,000 |
| {% data variables.product.prodname_pro %} | 1 GB | 3,000 |
| {% data variables.product.prodname_free_team %} for organizations | 500 MB | 2,000 |
| {% data variables.product.prodname_team %} | 2 GB | 3,000 |
| {% data variables.product.prodname_ghe_cloud %} | 50 GB | 50,000 |
{% 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.
Expand All @@ -68,10 +63,10 @@ If your account does not have a valid payment method on file, usage is blocked o

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 throughout the month. Minutes are calculated based on the total processing time used on each runner type during the month.
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.

* 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 and storage, see [AUTOTITLE](/billing/managing-billing-for-your-products/viewing-your-product-usage).
* To view your current minutes, artifact, and cache storage, 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.
Expand All @@ -81,36 +76,47 @@ Storage is billed based on hourly usage of artifacts throughout the month. Minut
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.

| Operating system | Minute multiplier |
|----------------- | :----------------:|
| Linux | 1 |
| Windows | 2 |
| macOS | 10 |
| ---------------- | :---------------: |
| Linux | 1 |
| Windows | 2 |
| macOS | 10 |

For full details of minute multipliers for {% data variables.product.github %}-hosted runners, see [AUTOTITLE](/billing/reference/actions-minute-multipliers).

### Example minutes cost calculation

For example, if your organization uses {% data variables.product.prodname_team %}, using 5,000 minutes beyond the included quota would have a total storage and minute cost of $56 USD, with the use of both Linux and Windows runners.
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.

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

### Example storage cost calculation
### Example artifact storage cost calculation

For example, if you use 3 GB of storage for 10 days of March and 12 GB for 21 days of March, your storage usage would be:
If you use 3 GB of artifact storage for 10 days of March and 12 GB for 21 days of March, your artifact storage usage would be:

* 3 GB x 10 days x (24 hours per day) = 720 GB-Hours
* 12 GB x 21 days x (24 hours per day) = 6,048 GB-Hours
* 720 GB-Hours + 6,048 GB-Hours = 6,768 GB-Hours
* 6,768 GB-Hours / (744 hours per month) = 9.0967 GB-Months

At the end of the month, {% data variables.product.github %} rounds your storage to the nearest MB. Therefore, your storage usage for March would be 9.097 GB.
At the end of the month, {% data variables.product.github %} rounds your artifact storage to the nearest MB. Therefore, your artifact storage usage for March would be 9.097 GB.

> [!NOTE]
> {% data variables.product.github %} updates your storage space within a 6 to 12-hour window. If you delete artifacts, the available space will be reflected in your account during the next scheduled update.
> {% data variables.product.github %} updates your artifact storage space within a 6 to 12-hour window. If you delete artifacts, the available space will be reflected in your account during the next scheduled update.

### Example cache storage cost calculation

If you use 3 GB of cache storage for 10 days of March and 12 GB for 21 days of March, your cache storage usage would be:

| Usage (GBs) | Billable (GB-Hours) | Non billable (GB-Hours) |
| -------------------------- | ---------------------------------------- | ----------------------------------- |
| 3 GB for the first 10 days | 0 GB-Hours | 720 GB-Hours |
| 12 GB for the next 21 days | **2\*21 days\*24 hours = 1008 GB-Hours** | 10\*21 days\*24 hours=5040 GB-Hours |

For cached storage, billing charts and reports show only the cost of usage beyond the included 10 GB. At the end of the month, the Actions Cache Storage SKU would show a use of 1008 GB-Hours.

## Managing your budget for {% data variables.product.prodname_actions %}

Expand Down
2 changes: 0 additions & 2 deletions content/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,6 @@ childGroups:
- code-security/securing-your-organization
- enterprise-onboarding
- admin
- gh-wa
- name: Developers
octicon: CodeSquareIcon
children:
Expand Down Expand Up @@ -196,4 +195,3 @@ externalProducts:
href: 'https://wellarchitected.github.com/'
external: true
---

Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,29 @@ For each repository in your organization, you can see how much cache storage a r
1. In the left sidebar, click **{% octicon "play" aria-hidden="true" aria-label="play" %} Actions**, then click **Caches**.
1. Review the list of repositories for information about their {% data variables.product.prodname_actions %} caches. You can click on a repository name to see more detail about the repository's caches.

{% ifversion fpt or ghec %}

### Configuring {% data variables.product.prodname_actions %} cache settings for your organization

You can configure cache retention and size settings that will apply to all repositories in your organization. This feature is opt-in and available to users with a payment method on file.

If your organization is owned by an enterprise that has configured cache settings, you can only configure limits up to the maximum set by the enterprise. If your organization is not owned by an enterprise (or the enterprise hasn't configured cache settings), you can configure up to the global maximums.

Repository administrators can opt in to configure limits for their repositories, but cannot exceed the limits set at the organization level.

{% data reusables.profile.access_profile %}
{% data reusables.profile.access_org %}
{% data reusables.profile.org_settings %}
{% data reusables.organizations.settings-sidebar-actions-general %}

1. In the "Cache" section, configure and save your changes to the following settings:
* **Cache retention**: The maximum number of days to retain caches before automatic deletion. The default is 7 days. You can configure up to 365 days (or up to the limit set by your enterprise). Click **Save** to apply any changes you make.
* **Cache size eviction limit**: The maximum total size of all caches in a repository. The default is 10 GB. You can configure up to 10,000 GB per repository (or up to the limit set by your enterprise). When this limit is exceeded, older caches will be evicted to make room for new caches. Click **Save** to apply any changes you make.

For more information about cache eviction, see [AUTOTITLE](/actions/reference/workflows-and-actions/dependency-caching#usage-limits-and-eviction-policy).

{% endif %}

{% ifversion ghes %}

### Configuring {% data variables.product.prodname_actions %} cache storage for your organization
Expand Down
Loading