Skip to main content

Actions limits

There are limits in GitHub Actions which you may hit as you scale up, some may be increased by contacting support.

You may be rate limited by GitHub Actions when you scale your usage. Some limits can be increased by contacting conosco por meio do Portal de suporte do GitHub.

Unless otherwise stated, the expected behaviour when a limit is reached is that the workflow/job will get cancelled.

These limits are subject to change.

Existing system limits

Limit categoryLimitThresholdDescriptionCan GitHub Support increase?
Workflow execution limitWorkflow run time35 days / workflow runIf a workflow run reaches this limit, the workflow run is cancelled. This period includes execution duration, and time spent on waiting and approval.
Workflow execution limitGate approval time30 daysA workflow may wait for up to 30 days on environment approvals.
Workflows queuingWorkflow trigger event rate limit1500 events / 10 seconds / repositoryEach repository is limited to events triggering a workflow run. Support ticket
Workflows queuingWorkflow run queued500 workflow runs / 10 secondsWhen the limit is reached, the workflow runs that were supposed to be triggered by the webhook events will be blocked and will not be queued. Reusable workflows are viewed as a single entity. For example, a run with 30 reusable workflows counts as 1 in this instance.
Workflow executionJob Matrix256 jobs / workflow runA job matrix can generate a maximum of jobs per workflow run. This limit applies to both GitHub-hosted and self-hosted runners.
Self-hostedRunner registrations1500 runners / 5 minutes / repository/org/enterpriseRunners can be registered per repository/organization/enterprise. Support ticket
Self-hostedRunners per runner group10,000 runnersRunners registered at the same time per runner group.
Self-hostedJob execution time5 daysEach job in a workflow can run for up to 5 days of execution time. If a job reaches this limit, the job is terminated and fails.
Self-hostedJob queue time24 hoursA job can be in the queue for 24 hours before it is automatically cancelled.
All GitHub-hosted runnersJob ConcurrencyVariesSee Job concurrency limits for GitHub-hosted runners. Support ticket
All GitHub-hosted runnersJob execution time6 hoursEach 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.
All GitHub-hosted runnersStorage limitsVariesFor more information, see Storage limits for all GitHub-hosted runners.
Larger runnersPer runner concurrency limitVaries by runner typeEstablished when setting up a runner. Normally 1,000 max for Linux CPU runners, but varies by type. See Job concurrency limits for GitHub-hosted runners. Support ticket
Larger runnersStatic IP limits10-50 IPs10 IPs for team plans, 50 IPs for enterprise, and the limit is configurable. Support ticket
Larger runnersPrivate IP scaling for vnet injection30% bufferYou need a buffer to accommodate the maximum job concurrency you anticipate. See Private IP scaling for vnet injection on larger runners. Configurable Azure virtual network

Job concurrency limits for GitHub-hosted runners

GitHub Support can increase job concurrency limits for GitHub Actions. To request an increase, submit a support ticket.

Runner typeGitHub planTotal concurrent jobsMaximum concurrent macOS jobsMaximum concurrent GPU jobs
Standard GitHub-hosted runnerFree205Not applicable
Standard GitHub-hosted runnerPro405Not applicable
Standard GitHub-hosted runnerTeam605Not applicable
Standard GitHub-hosted runnerEnterprise50050Not applicable
Larger runnerTeam10005100
Larger runnerEnterprise100050100

Observação

The maximum concurrent macOS jobs is shared across standard GitHub-hosted runners and GitHub-hosted larger runners.

Storage limits for all GitHub-hosted runners

GitHub Support cannot increase storage limits for GitHub Actions.

GitHub planStorageMinutes (per month)
GitHub Free500 MB2,000
GitHub Pro1 GB3,000
GitHub Free for organizations500 MB2,000
GitHub Team2 GB3,000
GitHub Enterprise Cloud50 GB50,000

Private IP scaling for vnet injection on larger runners

When using larger runners with vnet injection, you need to determine the appropriate subnet IP address range, for which we recommend adding a buffer to the maximum job concurrency you anticipate. For instance, if the network configuration's runners are set to a maximum job concurrency of 300, utilize a subnet IP address range that can accommodate at least 390 runners. Note that Azure reserves 5 IPs in every subnet (first 4 and last 1), which sets a minimum practical subnet size depending on runner requirements. Very small subnets (like /29 or smaller) may not provide enough usable addresses for your needs.

Commonly hit dependent service limits

GitHub's REST API rate limits apply to GitHub Actions users, those that are commonly hit are:

  • Unauthenticated users - Será possível fazer solicitações não autenticadas se você estiver buscando apenas dados públicos. As solicitações não autenticadas estão associadas ao endereço IP original, e não ao usuário ou aplicativo que fez a solicitação.

    O limite de taxa primária para solicitações não autenticadas é de 60 por hora.

  • Authenticated users - É possível usar um personal access token para fazer solicitações à API. Além disso, você pode autorizar um GitHub App ou OAuth app, que depois podem fazer solicitações à API em seu nome.

    Todas essas solicitações contam para o limite de taxa pessoal de solicitações de 5.000 por hora. O limite de taxa será mais alto (15.000 solicitações por hora) se as solicitações forem feitas em seu nome por um GitHub App pertencente a uma organização do GitHub Enterprise Cloud. Do mesmo modo, as solicitações realizadas em seu nome por um OAuth app pertencente ou aprovado por uma organização do GitHub Enterprise Cloud terão um limite de taxa mais alto (de 15.000 solicitações por hora) se você for membro da organização GitHub Enterprise Cloud.

  • GitHub app installations - Os GitHub Apps que se autenticam com um token de acesso de instalação usam o limite mínimo da taxa de instalação de 5.000 solicitações por hora. Se a instalação estiver em uma organização GitHub Enterprise Cloud, terá um limite de taxa de 15.000 solicitações por hora.

    No caso das instalações que não estão em uma organização GitHub Enterprise Cloud, o limite de taxa será ajustado conforme o número de usuários e repositórios. As instalações com mais de 20 repositórios recebem outras 50 solicitações por hora para cada repositório. Instalações que estão em uma organização com mais de 20 usuários recebem outras 50 solicitações por hora para cada uma dessas pessoas. Não é possível ampliar o limite de taxa para além de 12.500 solicitações por hora.

    Os limites de taxa primária para tokens de acesso do usuário do GitHub App (diferentemente dos tokens de acesso de instalação) são determinados pelos limites de taxa primária do usuário autenticado. Esse limite de taxa é combinado com todas as solicitações que outro GitHub App ou OAuth app faça em nome do usuário, bem como todas as solicitações realizadas pelo usuário com um personal access token. Para saber mais, confira Limites de taxa para a API REST.

  • OAuth apps - Nesse caso, o limite de taxa é de 5.000 solicitações por hora, por OAuth app. Se o aplicativo pertencer a uma organização do GitHub Enterprise Cloud, o limite de taxa será de 15.000 solicitações por hora.

  • GITHUB TOKEN - O limite de taxa de GITHUB_TOKEN é de mil solicitações por hora e por repositório. Para solicitações de recursos que pertencem a uma conta de GitHub Enterprise Cloud, o limite é de 15.000 solicitações por hora e por repositório.

  • Secondary rate limits - In addition to primary rate limits, GitHub enforces secondary rate limits in order to prevent abuse and keep the API available for all users, these are not configurable with GHEC. For more information, see Limites de taxa para a API REST.