About billing for GitHub Actions
GitHub Actions help you automate your software development workflows in the same place you store code and collaborate on pull requests and issues. You can write individual tasks, called actions, and combine them to create a custom workflow. For more information, see "Understanding GitHub Actions."
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 account's plan. Any usage beyond the included amounts is controlled by spending limits. For more information, see "About billing for GitHub Actions."
Availability
GitHub Actions is available on all GitHub products, but GitHub Actions is not available for private repositories owned by accounts using legacy per-repository plans. For more information, see "GitHub’s plans."
Usage limits
There are some limits on GitHub Actions usage when using GitHub-hosted runners. These limits are subject to change.
Note: For self-hosted runners, different usage limits apply. For more information, see "About self-hosted runners."
-
Job execution time - Each job in a workflow can run for up to 6 hours of execution time. If a job reaches this limit, the job is terminated and fails to complete.
-
Workflow run time - Each workflow run is limited to 35 days. If a workflow run reaches this limit, the workflow run is cancelled. This period includes execution duration, and time spent on waiting and approval.
-
API requests - You can execute up to 1,000 requests to the GitHub API in an hour across all actions within a repository. If requests are exceeded, additional API calls will fail which might cause jobs to fail.
-
Webhook rate limit - Each repository is limited to 1500 triggered events every 10 seconds.
-
Concurrent jobs - The number of concurrent jobs you can run in your account depends on your GitHub plan, as well as the type of runner used. If exceeded, any additional jobs are queued.
Standard GitHub-hosted runners
GitHub plan Total concurrent jobs Maximum concurrent macOS jobs Free 20 5 Pro 40 5 Team 60 5 Enterprise 500 50 GitHub-hosted larger runners
GitHub plan Total concurrent jobs Maximum concurrent macOS jobs Maximum concurrent GPU jobs Team 1000 5 100 Enterprise 1000 50 100 Notes:
- If required, customers on enterprise plans can request a higher limit for concurrent jobs. For more information, contact us through the GitHub Support portal, or contact your sales representative.
- The maximum concurrent macOS jobs is shared across standard GitHub-hosted runner and GitHub-hosted larger runners.
-
Job matrix - A job matrix can generate a maximum of 256 jobs per workflow run. This limit applies to both GitHub-hosted and self-hosted runners.
-
Workflow run queue - No more than 500 workflow runs can be queued in a 10 second interval per repository. If a workflow run reaches this limit, the workflow run is terminated and fails to complete.
Usage policy
In addition to the usage limits, you must ensure that you use GitHub Actions within the GitHub Terms of Service. For more information on GitHub Actions-specific terms, see the GitHub Additional Product Terms.
GitHub Actions usage metrics
Organization owners and users with the "View organization Actions metrics" permission can view GitHub Actions usage metrics for their organization. These metrics can help you understand how and where your Actions minutes are being used. For more information, see "Viewing GitHub Actions metrics for your organization."
When you view usage metrics, it is important to remember that GitHub Actions usage metrics do not apply minute multipliers to the metrics displayed. While they can help you understand your bill, their primary purpose is to help you understand how and where Actions minutes are being used in your organization.
For more information about minute multipliers, see "About billing for GitHub Actions."
Billing for reusable workflows
If you reuse a workflow, billing is always associated with the caller workflow. Assignment of GitHub-hosted runners is always evaluated using only the caller's context. The caller cannot use GitHub-hosted runners from the called repository.
For more information see, "Reusing workflows."
Artifact and log retention policy
You can configure the artifact and log retention period for your repository, organization, or enterprise account.
By default, the artifacts and log files generated by workflows are retained for 90 days before they are automatically deleted. You can adjust the retention period, depending on the type of repository:
- For public repositories: you can change this retention period to anywhere between 1 day or 90 days.
- For private repositories: you can change this retention period to anywhere between 1 day or 400 days.
When you customize the retention period, it only applies to new artifacts and log files, and does not retroactively apply to existing objects. For managed repositories and organizations, the maximum retention period cannot exceed the limit set by the managing organization or enterprise.
For more information, see:
- "Managing GitHub Actions settings for a repository"
- "Configuring the retention period for GitHub Actions artifacts and logs in your organization"
- "Enforcing policies for GitHub Actions in your enterprise"
Disabling or limiting GitHub Actions for your repository or organization
By default, GitHub Actions is enabled on all repositories and organizations. You can choose to disable GitHub Actions or limit it to actions and reusable workflows in your organization.
For more information, see:
- "Managing GitHub Actions settings for a repository"
- "Disabling or limiting GitHub Actions for your organization"
- "Enforcing policies for GitHub Actions in your enterprise"
Disabling and enabling workflows
You can enable and disable individual workflows in your repository on GitHub.
To prevent unnecessary workflow runs, scheduled workflows may be disabled automatically. When a public repository is forked, scheduled workflows are disabled by default. In a public repository, scheduled workflows are automatically disabled when no repository activity has occurred in 60 days.
For more information, see "Disabling and enabling a workflow."