GitHub Actions usage is free for standard GitHub-hosted runners in public repositories, and for self-hosted runners. For private repositories, each GitHub account receives a certain amount of free minutes and storage for use with GitHub-hosted runners, depending on the product used with the account. Any usage beyond the included amounts is controlled by spending limits.
If you are a monthly-billed customer, your account will have a default spending limit of 0 US dollars (USD), which prevents additional usage of minutes or storage for private repositories beyond the amounts included with your account. If you pay your account by invoice, your account will have an unlimited default spending limit. For more information, see "About spending limits."
Minutes reset every month, while storage usage does not.
Note: Entitlement minutes cannot be used for Windows and Ubuntu runners over 2-cores. These runners will always be charged for, including in public repos. For more information, see "Per-minute rates for runners."
|Product||Storage||Minutes (per month)|
|GitHub Free||500 MB||2,000|
|GitHub Pro||1 GB||3,000|
|GitHub Free for organizations||500 MB||2,000|
|GitHub Team||2 GB||3,000|
|GitHub Enterprise Cloud||50 GB||50,000|
Jobs that run on Windows and macOS runners that GitHub hosts consume minutes at 2 and 10 times the rate that jobs on Linux runners consume. For example, using 1,000 Windows minutes would consume 2,000 of the minutes included in your account. Using 1,000 macOS minutes, would consume 10,000 minutes included in your account.
|Operating system||Minute multiplier|
The storage used by a repository is the total storage used by GitHub Actions artifacts and GitHub Packages. Your storage cost is the total usage for all repositories owned by your account. For more information about pricing for GitHub Packages, see "About billing for GitHub Packages."
If your account's usage surpasses these limits and you have set a spending limit above $0 USD, you will pay $0.008 USD per GB of storage per day and per-minute usage depending on the operating system used by the GitHub-hosted runner. GitHub rounds the minutes each job uses up to the nearest minute.
Note: Minute multipliers do not apply to the per-minute rates shown below.
|Operating system||Cores||Per-minute rate (USD)|
- The number of jobs you can run concurrently across all repositories in your user or organization account depends on your GitHub plan. For more information, see "Usage limits and billing" for GitHub-hosted runners and "About self-hosted runners" for self-hosted runner usage limits.
- You must manage billing settings and paid features for each of your accounts separately. You can switch between settings for your personal account, organization accounts, and enterprise accounts using the context switcher on each settings page. For more information, see "Switching between settings for your different accounts."
- For larger runners, there is no additional cost for configurations that assign public static IP addresses to a larger runner. For more information on larger runners, see "Using larger runners."
- Entitlement minutes cannot be used for larger runners.
- The larger runners are not free for public repositories.
To estimate the costs for consumptive services, you can use the GitHub pricing calculator.
At the end of the month, GitHub calculates the cost of minutes and storage used over the amount included in your account.
For example, if your organization uses GitHub Team and allows unlimited spending, using 5,000 minutes could have a total storage and minute overage cost of $56 USD, depending on the operating systems used to run jobs.
- 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.
GitHub calculates your storage usage for each month based on hourly usage during that month.
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:
- 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, GitHub rounds your storage to the nearest MB. Therefore, your storage usage for March would be 9.097 GB.
Your GitHub Actions usage shares your account's existing billing date, payment method, and receipt. To view all the subscriptions for your account on GitHub.com, see "Viewing your subscriptions and billing date."
If you are a monthly-billed customer, your account will have a default spending limit of 0 US dollars (USD), which prevents additional usage of minutes or storage for private repositories beyond the amounts included with your account. If you pay your account by invoice, your account will have an unlimited default spending limit.
If you have an unlimited spending limit or a spending limit set higher than $0 USD, you will be billed for any additional minutes or storage beyond the included amounts in your account, also called overages. GitHub charges usage to the account that owns the repository where a workflow is run. Any coupons on your account do not apply to GitHub Actions overages.
Overages are always billed monthly regardless of your billing term (even if your account is otherwise billed annually).
For information on managing and changing your account's spending limit, see "Managing your spending limit for GitHub Actions."
If your account has outstanding unpaid charges:
- The storage or minutes included in your account for GitHub Actions and GitHub Packages will not be reset until the payment has been successfully processed.
- For accounts with storage or minutes remaining for the current billing period, GitHub Actions and GitHub Packages will continue to be available until any included usage has been reached.
- For accounts that have reached the included usage for the current billing period for GitHub Actions or GitHub Packages, both GitHub Actions and GitHub Packages will be disabled to prevent any further overages.