CI/CD minutes quota

Shared runners are shared with every project and group in a GitLab instance. When jobs run on shared runners, CI/CD minutes are used.

You can set limits on the number of CI/CD minutes that are used each month.

  • On GitLab.com, the quota of CI/CD minutes is set for each namespace, and is determined by your license tier.
  • On self-managed GitLab instances, the quota of CI/CD minutes for each namespace is set by administrators.

In addition to the monthly quota, you can add more CI/CD minutes when needed.

Specific runners are not subject to a quota of CI/CD minutes.

Set the quota of CI/CD minutes for all namespaces

Moved to GitLab Premium in 13.9.

By default, GitLab instances do not have a quota of CI/CD minutes. The default value for the quota is 0, which grants unlimited CI/CD minutes. However, you can change this default value.

Prerequisite:

  • You must be a GitLab administrator.

To change the default quota that applies to all namespaces:

  1. On the top bar, select Menu > Admin.
  2. On the left sidebar, select Settings > CI/CD.
  3. Expand Continuous Integration and Deployment.
  4. In the Quota of CI/CD minutes box, enter the maximum number of CI/CD minutes.
  5. Select Save changes.

If a quota is already defined for a specific namespace, this value does not change that quota.

Set the quota of CI/CD minutes for a specific namespace

Moved to GitLab Premium in 13.9.

You can override the global value and set a quota of CI/CD minutes for a specific namespace.

Prerequisite:

  • You must be a GitLab administrator.

To set a quota of CI/CD minutes for a namespace:

  1. On the top bar, select Menu > Admin.
  2. On the left sidebar, select Overview > Groups.
  3. For the group you want to update, select Edit.
  4. In the Quota of CI/CD minutes box, enter the maximum number of CI/CD minutes.
  5. Select Save changes.

You can also use the update group API or the update user API instead.

note
You can set a quota of CI/CD minutes for only top-level groups or user namespaces. If you set a quota for a subgroup, it is not used.

View CI/CD minutes used by a group

You can view the number of CI/CD minutes being used by a group.

Prerequisite:

  • You must have the Owner role for the group.

To view CI/CD minutes being used for your group:

  1. On the top bar, select Menu > Groups and find your group. The group must not be a subgroup.
  2. On the left sidebar, select Settings > Usage Quotas.
  3. Select the Pipelines tab.

Group CI/CD minutes quota

View CI/CD minutes used by a personal namespace

You can view the number of CI/CD minutes being used by a personal namespace:

  1. On the top bar, in the top right corner, select your avatar.
  2. Select Edit profile.
  3. On the left sidebar, select Usage Quotas.

Purchase additional CI/CD minutes

If you’re using GitLab SaaS, you can purchase additional packs of CI/CD minutes. These additional CI/CD minutes:

  • Are used only after the monthly quota included in your subscription runs out.
  • Are carried over to the next month, if any remain at the end of the month.
  • Don’t expire.

If you use more CI/CD minutes than your monthly quota, when you purchase more, those CI/CD minutes are deducted from your quota. For example, with a GitLab SaaS Premium license:

  • You have 10,000 monthly minutes.
  • You purchase an additional 5,000 minutes.
  • Your total limit is 15,000 minutes.

If you use 13,000 minutes during the month, the next month your additional minutes become 2,000. If you use 9,000 minutes during the month, your additional minutes remain the same.

You can find pricing for additional CI/CD minutes on the GitLab Pricing page.

Purchase CI/CD minutes for a group

You can purchase additional CI/CD minutes for your group. You cannot transfer purchased CI/CD minutes from one group to another, so be sure to select the correct group.

  1. On the top bar, select Menu > Groups and find your group.
  2. On the left sidebar, select Settings > Usage Quotas.
  3. Select Buy additional minutes.
  4. Complete the details of the transaction.

After your payment is processed, the additional CI/CD minutes are added to your group namespace.

Purchase CI/CD minutes for a personal namespace

To purchase additional minutes for your personal namespace:

  1. On the top bar, in the top right corner, select your avatar.
  2. Select Edit profile.
  3. On the left sidebar, select Usage Quotas.
  4. Select Buy additional minutes. GitLab redirects you to the Customers Portal.
  5. Locate the subscription card that’s linked to your personal namespace on GitLab SaaS, select Buy more CI minutes, and complete the details of the transaction.

After your payment is processed, the additional CI/CD minutes are added to your personal namespace.

How CI/CD minutes are calculated

CI/CD minutes are calculated based on:

  • The duration the job runs.
  • The visibility of the projects where the job runs.

GitLab uses this formula to calculate CI/CD minutes consumed by a job:

Job duration * Cost factor
  • Job duration: The time, in seconds, that a job took to run on a shared runner. It does not include time spent in created or pending status.
  • Cost factor: A number based on project visibility.

The number is transformed into minutes and added to the overall quota in the job’s top-level namespace.

For example:

  • A user, alice, runs a pipeline under the gitlab-org namespace.
  • The CI/CD minutes consumed by each job in the pipeline are added to the overall consumption for the gitlab-org namespace, not the alice namespace.
  • If a pipeline runs for one of the personal projects for alice, the CI/CD minutes are added to the overall consumption for the alice namespace.

Cost factor

The cost factor for a job running on a shared runner is:

  • 0.008 for public projects on GitLab SaaS, if created 2021-07-17 or later. (For every 125 minutes of job time, you accrue 1 CD/CD minute.)
  • 0.008 for projects members of GitLab Open Source program. (For every 125 minutes of job time, you accrue 1 CD/CD minute.)
  • 0 for public projects on GitLab self-managed instances, and for GitLab SaaS public projects created before 2021-07-17.
  • 1 for internal and private projects.

Additional costs on GitLab SaaS

On GitLab SaaS, shared runners can have different cost factors depending on the cost involved in executing the runner. For example, a high spec shared runner could be set to have a cost factor of 2. Conversely, a shared runner that executes jobs for public projects could have a low cost factor, like 0.008.

Monthly reset of CI/CD minutes

On the first day of each calendar month, the accumulated usage of CI/CD minutes is reset to 0 for all namespaces that use shared runners.

Usage data for the previous month is kept to show historical view of the consumption over time.

What happens when you exceed the quota

When the quota of CI/CD minutes is used for the current month, GitLab stops processing new jobs.

  • Any non-running job that should be picked by shared runners is automatically dropped.
  • Any job being retried is automatically dropped.
  • Any running job can be dropped at any point if the overall namespace usage goes over-quota by a grace period.

The grace period for running jobs is 1,000 CI/CD minutes.

Jobs on specific runners are not affected by the quota of CI/CD minutes.

GitLab SaaS usage notifications

On GitLab SaaS an email notification is sent to the namespace owners when:

  • The available CI/CD minutes are below 30% of the quota.
  • The available CI/CD minutes are below 5% of the quota.
  • All CI/CD minutes have been used.