Configure CI/CD settings for your GitLab instance in the Admin area.
The following settings are available:
Customize CI/CD settings, including Auto DevOps, instance runners, and job artifacts.
To access these settings:
Configure Auto DevOps to run for all projects that don’t have a .gitlab-ci.yml
file. This applies to both existing projects and any new projects.
To configure Auto DevOps for all projects in your instance:
Make instance runners available to all new projects by default.
To make instance runners available to new projects:
Add explanatory text about the instance runners. This text appears in all projects’ runner settings.
To add instance runner details:
To view the rendered details:
Share a project runner with multiple projects.
Prerequisites:
To share a project runner with multiple projects:
Control how job artifacts are stored and managed across your GitLab instance.
Set maximum artifacts sizeSet size limits for job artifacts to control storage use. Each artifact file in a job has a default maximum size of 100 MB.
Job artifacts defined with artifacts:reports
can have different limits. When different limits apply, the smaller value is used.
This setting applies to the size of the final archive file, not individual files in a job.
You can configure artifact size limits for:
For GitLab.com limits, see Artifacts maximum size.
To change the maximum artifact size for an instance:
To change the maximum artifact size for a group or project:
Set how long job artifacts are kept before being automatically deleted. The default expiration time is 30 days.
The syntax for duration is described in artifacts:expire_in
. Individual job definitions can override this default value in the project’s .gitlab-ci.yml
file.
Changes to this setting apply only to new artifacts. Existing artifacts keep their original expiration time. For information about manually expiring older artifacts, see the troubleshooting documentation.
To set the default expiration time for job artifacts:
Preserve artifacts from the most recent successful pipeline for each Git ref (branch or tag), regardless of their expiration time.
By default, this setting is turned on.
This setting takes precedence over project settings. If turned off for an instance, it cannot be turned on for individual projects.
When this feature is turned off, existing preserved artifacts don’t immediately expire. A new successful pipeline must run on a branch before its artifacts can expire.
All application settings have a customizable cache expiry interval, which can delay the effect of settings changes.
To keep artifacts from the latest successful pipelines:
To allow artifacts to expire according to their expiration settings, clear the checkbox instead.
Display or hide the external redirect warning pageControl whether to display a warning page when users view job artifacts through GitLab Pages. This warning alerts about potential security risks from user-generated content.
The external redirect warning page is displayed by default. To hide it:
Archive old pipelines and all their jobs automatically after a specified time period. Archived jobs:
The archive duration is measured from the time the pipeline is created. It must be at least 1 day. Examples of valid durations include 15 days
, 1 month
, and 2 years
. Leave this field empty to never archive pipelines automatically.
For GitLab.com, see Scheduled job archiving.
To set up job archiving:
History
Control whether pipeline variables are allowed by default in new projects in new groups.
When disabled, the default role to use pipeline variables setting is set to No one allowed for new groups, which cascades to new projects in the new groups. When enabled, the setting defaults to Developer instead.
To keep the most secure defaults for new groups and projects, the recommendation is to set this setting to disabled.
To allow pipeline variables by default in all new projects in new groups:
After group or project creation, maintainers can choose a different setting.
Protect CI/CD variables by defaultSet all new CI/CD variables in projects and groups to be protected by default. Protected variables are available only to pipelines that run on protected branches or protected tags.
To protect all new CI/CD variables by default:
History
Limit how many external YAML files a pipeline can include using the include
keyword. This limit prevents performance issues when pipelines include too many files.
By default, a pipeline can include up to 150 files. When a pipeline exceeds this limit, it fails with an error.
To set the maximum number of included files per pipeline:
History
Restrict how many downstream pipelines can be triggered per minute from a single source.
The maximum downstream pipeline trigger rate limits how many downstream pipelines can be triggered per minute for a given combination of project, user, and commit. The default value is 0
, which means there is no restriction.
History
Set the maximum number of tag or branch pipelines that can be triggered by a single Git push. For more information about this limit, see number of pipelines per Git push.
Set a custom path and filename to use as the default for CI/CD configuration files in all new projects. By default, GitLab uses the .gitlab-ci.yml
file in the project’s root directory.
This setting applies only to new projects created after you change it. Existing projects continue to use their current CI/CD configuration file path.
To set a custom default CI/CD configuration file path:
Individual projects can override this instance default by specifying a custom CI/CD configuration file.
Control whether to display a guidance banner in merge requests that have no pipelines. This banner provides a walkthrough on how to add a .gitlab-ci.yml
file.
The pipeline suggestion banner is displayed by default. To hide it:
History
Control whether to display a banner encouraging migration from Jenkins to GitLab CI/CD. This banner appears in merge requests for projects that have the Jenkins integration enabled.
The Jenkins migration banner is displayed by default. To hide it:
History
Set CI/CD limits to control resource usage and help prevent performance issues.
You can configure the following CI/CD limits:
For more information on what these limits control, see CI/CD limits.
To configure CI/CD limits:
Configure NuGet package validation, Helm package limits, package file size limits, and package forwarding.
To access these settings:
Skip validation of the projectUrl
, iconUrl
, and licenseUrl
metadata in NuGet packages.
By default, GitLab validates these URLs. If your GitLab instance doesn’t have internet access, this validation fails and prevents you from uploading NuGet packages.
To skip NuGet package metadata URL validation:
Set the maximum number of Helm packages that can be listed per channel.
To set the Helm package limit:
Set maximum file size limits for each package type to control storage usage and maintain system performance.
You can configure the maximum file size limits for the following packages, in bytes:
To configure package file size limits:
Control whether package requests are forwarded to public registries when packages aren’t found in your GitLab package registry.
By default, GitLab forwards package requests to their respective public registries:
To stop package forwarding:
Configure runner version management and registration settings.
To access these settings:
Control whether your instance fetches official runner version data from GitLab.com to determine if runners need upgrades.
By default, GitLab fetches runner version data. To stop fetching this data:
History
Control who can register runners and whether to allow registration tokens.
The option to pass runner registration tokens and support for certain configuration arguments are deprecated in GitLab 15.6 and is planned for removal in GitLab 20.0. Use the runner creation workflow to generate an authentication token to register runners. This process provides full traceability of runner ownership and enhances your runner fleet’s security.
For more information, see Migrating to the new runner registration workflow.
By default, runner registration tokens and both project and group member registration are allowed. To restrict runner registration:
When you disable runner registration for project members, the registration token automatically rotates. The previous token becomes invalid and you must use the new registration token for the project.
Restrict runner registration for a specific groupControl whether members of a specific group can register runners.
Prerequisites:
To restrict runner registration for a specific group:
Control how CI/CD job tokens can access your projects.
To access these settings:
History
Require all projects to control job token access using an allowlist.
When enforced, CI/CD job tokens can only access projects when the token’s source project is added to the project’s allowlist. For more information, see control job token access to your project.
To enforce job token allowlists:
Control how CI/CD job logs are stored and processed.
To access these settings:
History
Use Redis for temporary caching of job logs and incrementally upload archived logs to object storage. This improves performance and reduces disk space usage.
For more information, see incremental logging.
Prerequisites:
To turn on incremental logging for all projects:
History
required_pipelines
. Disabled by default.This feature was deprecated in GitLab 15.9 and was removed in 17.0. From 17.4, it is available only behind the feature flag required_pipelines
, disabled by default. Use compliance pipelines instead. This change is a breaking change.
You can set a CI/CD template as a required pipeline configuration for all projects on a GitLab instance. You can use a template from:
The default CI/CD templates.
A custom template stored in an instance template repository.
When you use a configuration defined in an instance template repository, nested include:
keywords (including include:file
, include:local
, include:remote
, and include:template
) do not work.
The project CI/CD configuration merges into the required pipeline configuration when a pipeline runs. The merged configuration is the same as if the required pipeline configuration added the project configuration with the include
keyword. To view a project’s full merged configuration, View full configuration in the pipeline editor.
To select a CI/CD template for the required pipeline configuration:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4