debian-mirror-gitlab/doc/user/admin_area/settings/continuous_integration.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

360 lines
15 KiB
Markdown
Raw Normal View History

2019-09-04 21:01:54 +05:30
---
2020-06-23 00:09:42 +05:30
stage: Verify
2021-09-04 01:27:46 +05:30
group: Pipeline Execution
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2019-09-04 21:01:54 +05:30
type: reference
---
2021-09-04 01:27:46 +05:30
# Continuous Integration and Deployment Admin Area settings **(FREE SELF)**
2016-09-13 17:45:13 +05:30
2021-09-04 01:27:46 +05:30
The [Admin Area](index.md) has the instance settings for Auto DevOps, runners, and
job artifacts.
2016-09-13 17:45:13 +05:30
2021-09-04 01:27:46 +05:30
## Auto DevOps
2016-09-13 17:45:13 +05:30
2018-12-05 23:21:45 +05:30
To enable (or disable) [Auto DevOps](../../../topics/autodevops/index.md)
for all projects:
2016-09-13 17:45:13 +05:30
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
2020-07-28 23:09:34 +05:30
1. Check (or uncheck to disable) the box that says **Default to Auto DevOps pipeline for all projects**.
2021-10-27 15:23:28 +05:30
1. Optionally, set up the [Auto DevOps base domain](../../../topics/autodevops/requirements.md#auto-devops-base-domain)
2021-06-08 01:23:25 +05:30
which is used for Auto Deploy and Auto Review Apps.
2018-12-05 23:21:45 +05:30
1. Hit **Save changes** for the changes to take effect.
2016-09-13 17:45:13 +05:30
2018-12-05 23:21:45 +05:30
From now on, every existing project and newly created ones that don't have a
2021-06-08 01:23:25 +05:30
`.gitlab-ci.yml`, uses the Auto DevOps pipelines.
2016-09-13 17:45:13 +05:30
2018-12-05 23:21:45 +05:30
If you want to disable it for a specific project, you can do so in
2021-04-17 20:07:23 +05:30
[its settings](../../../topics/autodevops/index.md#enable-or-disable-auto-devops).
2016-09-13 17:45:13 +05:30
2022-06-21 17:19:12 +05:30
## Enable shared runners for new projects
You can set all new projects to have the instance's shared runners available by default.
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2022-06-21 17:19:12 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Expand **Continuous Integration and Deployment**.
1. Select the **Enable shared runners for new projects** checkbox.
Any time a new project is created, the shared runners are available.
2022-07-23 23:45:48 +05:30
## Shared runners CI/CD minutes
As an administrator you can set either a global or namespace-specific
limit on the number of [CI/CD minutes](../../../ci/pipelines/cicd_minutes.md) you can use.
## Enable a specific runner for multiple projects
To enable a specific runner for one or more projects:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2022-07-23 23:45:48 +05:30
1. From the left sidebar, select **Overview > Runners**.
1. Select the runner you want to edit.
1. In the top right, select **Edit** (**{pencil}**).
1. Under **Restrict projects for this runner**, search for a project.
1. To the left of the project, select **Enable**.
1. Repeat this process for each additional project.
2022-06-21 17:19:12 +05:30
## Add a message for shared runners
2021-09-04 01:27:46 +05:30
To display details about the instance's shared runners in all projects'
runner settings:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Expand **Continuous Integration and Deployment**.
2022-06-21 17:19:12 +05:30
1. Enter text, including Markdown if you want, in the **Shared runner details** field. For example:
![Shared runner details input](img/continuous_integration_shared_runner_details_input_v14_10.png)
2021-09-04 01:27:46 +05:30
2022-06-21 17:19:12 +05:30
To view the rendered details:
2021-09-04 01:27:46 +05:30
2022-11-25 23:54:43 +05:30
1. On the top bar, select **Main menu**, and:
- For a project, select ***Projects** and find your project.
- For a group, select **Groups** and find your group.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Expand **Runners**.
2022-06-21 17:19:12 +05:30
![Shared runner details example](img/continuous_integration_shared_runner_details_v14_10.png)
2021-09-04 01:27:46 +05:30
2021-11-18 22:05:49 +05:30
## Maximum artifacts size
2018-11-20 20:47:30 +05:30
2019-07-31 22:56:46 +05:30
The maximum size of the [job artifacts](../../../administration/job_artifacts.md)
2019-12-21 20:55:43 +05:30
can be set at:
2017-08-17 22:00:37 +05:30
2019-12-21 20:55:43 +05:30
- The instance level.
2020-06-23 00:09:42 +05:30
- [From GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/-/issues/21688), the project and group level.
2017-08-17 22:00:37 +05:30
2022-05-07 20:08:51 +05:30
For the setting on GitLab.com, see [Artifacts maximum size](../../gitlab_com/index.md#gitlab-cicd).
2019-12-21 20:55:43 +05:30
2022-05-07 20:08:51 +05:30
The value is in MB and the default is 100MB per job. To change it at the:
2019-12-21 20:55:43 +05:30
- Instance level:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2022-08-13 15:12:31 +05:30
1. On the left sidebar, select **Settings > CI/CD > Continuous Integration and Deployment**.
1. Change the value of **Maximum artifacts size (MB)**.
2022-05-07 20:08:51 +05:30
1. Select **Save changes** for the changes to take effect.
2019-12-21 20:55:43 +05:30
2021-06-08 01:23:25 +05:30
- Group level (this overrides the instance setting):
2019-12-21 20:55:43 +05:30
2021-04-17 20:07:23 +05:30
1. Go to the group's **Settings > CI/CD > General Pipelines**.
2022-08-13 15:12:31 +05:30
1. Change the value of **Maximum artifacts size** (in MB).
2022-05-07 20:08:51 +05:30
1. Select **Save changes** for the changes to take effect.
2019-12-21 20:55:43 +05:30
2021-06-08 01:23:25 +05:30
- Project level (this overrides the instance and group settings):
2019-12-21 20:55:43 +05:30
2021-04-17 20:07:23 +05:30
1. Go to the project's **Settings > CI/CD > General Pipelines**.
2022-08-13 15:12:31 +05:30
1. Change the value of **maximum artifacts size** (in MB).
2022-05-07 20:08:51 +05:30
1. Select **Save changes** for the changes to take effect.
2019-12-21 20:55:43 +05:30
2021-02-22 17:27:13 +05:30
NOTE:
2019-12-21 20:55:43 +05:30
The setting at all levels is only available to GitLab administrators.
2017-08-17 22:00:37 +05:30
2021-09-04 01:27:46 +05:30
## Default artifacts expiration
2017-08-17 22:00:37 +05:30
2018-12-05 23:21:45 +05:30
The default expiration time of the [job artifacts](../../../administration/job_artifacts.md)
2020-03-13 15:44:24 +05:30
can be set in the Admin Area of your GitLab instance. The syntax of duration is
2021-09-30 23:02:18 +05:30
described in [`artifacts:expire_in`](../../../ci/yaml/index.md#artifactsexpire_in)
2020-07-28 23:09:34 +05:30
and the default value is `30 days`.
2017-08-17 22:00:37 +05:30
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
2018-12-05 23:21:45 +05:30
1. Change the value of default expiration time.
2022-05-07 20:08:51 +05:30
1. Select **Save changes** for the changes to take effect.
2017-08-17 22:00:37 +05:30
2018-12-05 23:21:45 +05:30
This setting is set per job and can be overridden in
2021-09-30 23:02:18 +05:30
[`.gitlab-ci.yml`](../../../ci/yaml/index.md#artifactsexpire_in).
2018-12-05 23:21:45 +05:30
To disable the expiration, set it to `0`. The default unit is in seconds.
2018-12-13 13:39:08 +05:30
2021-02-22 17:27:13 +05:30
NOTE:
2021-06-08 01:23:25 +05:30
Any changes to this setting applies to new artifacts only. The expiration time is not
2020-03-13 15:44:24 +05:30
be updated for artifacts created before this setting was changed.
The administrator may need to manually search for and expire previously-created
artifacts, as described in the [troubleshooting documentation](../../../administration/troubleshooting/gitlab_rails_cheat_sheet.md#remove-artifacts-more-than-a-week-old).
2021-09-04 01:27:46 +05:30
## Keep the latest artifacts for all jobs in the latest successful pipelines
2019-07-31 22:56:46 +05:30
2021-09-04 01:27:46 +05:30
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50889) in GitLab 13.9.
2021-03-11 19:13:27 +05:30
2021-09-04 01:27:46 +05:30
When enabled (default), the artifacts of the most recent pipeline for each Git ref
([branches and tags](https://git-scm.com/book/en/v2/Git-Internals-Git-References))
are locked against deletion and kept regardless of the expiry time.
2021-03-11 19:13:27 +05:30
When disabled, the latest artifacts for any **new** successful or fixed pipelines
are allowed to expire.
This setting takes precedence over the [project level setting](../../../ci/pipelines/job_artifacts.md#keep-artifacts-from-most-recent-successful-jobs).
If disabled at the instance level, you cannot enable this per-project.
2021-04-17 20:07:23 +05:30
To disable the setting:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
2021-04-17 20:07:23 +05:30
1. Expand **Continuous Integration and Deployment**.
1. Clear the **Keep the latest artifacts for all jobs in the latest successful pipelines** checkbox.
2022-05-07 20:08:51 +05:30
1. Select **Save changes**
2021-04-17 20:07:23 +05:30
2021-03-11 19:13:27 +05:30
When you disable the feature, the latest artifacts do not immediately expire.
A new pipeline must run before the latest artifacts can expire and be deleted.
NOTE:
All application settings have a [customizable cache expiry interval](../../../administration/application_settings_cache.md) which can delay the settings affect.
2021-09-04 01:27:46 +05:30
## Archive jobs
2018-12-13 13:39:08 +05:30
2022-07-16 23:28:13 +05:30
Archiving jobs is useful for reducing the CI/CD footprint on the system by removing some
2022-06-21 17:19:12 +05:30
of the capabilities of the jobs (metadata stored in the database needed to run the job),
2018-12-13 13:39:08 +05:30
but persisting the traces and artifacts for auditing purposes.
2021-06-08 01:23:25 +05:30
To set the duration for which the jobs are considered as old and expired:
2018-12-13 13:39:08 +05:30
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
2020-03-13 15:44:24 +05:30
1. Expand the **Continuous Integration and Deployment** section.
1. Set the value of **Archive jobs**.
2018-12-13 13:39:08 +05:30
1. Hit **Save changes** for the changes to take effect.
2022-06-21 17:19:12 +05:30
After that time passes, the jobs are archived in the background and no longer able to be
2018-12-13 13:39:08 +05:30
retried. Make it empty to never expire jobs. It has to be no less than 1 day,
for example: <code>15 days</code>, <code>1 month</code>, <code>2 years</code>.
2019-09-04 21:01:54 +05:30
2022-05-07 20:08:51 +05:30
For the value set for GitLab.com, see [Scheduled job archiving](../../gitlab_com/index.md#gitlab-cicd).
2020-07-28 23:09:34 +05:30
2021-09-04 01:27:46 +05:30
## Protect CI/CD variables by default
2021-09-30 23:02:18 +05:30
To set all new [CI/CD variables](../../../ci/variables/index.md) as
2022-07-16 23:28:13 +05:30
[protected](../../../ci/variables/index.md#protected-cicd-variables) by default:
2021-09-04 01:27:46 +05:30
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Select **Protect CI/CD variables by default**.
## Default CI/CD configuration file
2019-12-26 22:10:19 +05:30
2020-03-13 15:44:24 +05:30
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18073) in GitLab 12.5.
2019-12-26 22:10:19 +05:30
2021-09-04 01:27:46 +05:30
The default CI/CD configuration file and path for new projects can be set in the Admin Area
of your GitLab instance (`.gitlab-ci.yml` if not set):
2019-12-26 22:10:19 +05:30
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Input the new file and path in the **Default CI/CD configuration file** field.
2019-12-26 22:10:19 +05:30
1. Hit **Save changes** for the changes to take effect.
2021-09-30 23:02:18 +05:30
It is also possible to specify a [custom CI/CD configuration file for a specific project](../../../ci/pipelines/settings.md#specify-a-custom-cicd-configuration-file).
2019-12-26 22:10:19 +05:30
2022-06-21 17:19:12 +05:30
## Set CI/CD limits
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/352175) in GitLab 14.10.
You can configure some [CI/CD limits](../../../administration/instance_limits.md#cicd-limits)
from the Admin Area:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2022-06-21 17:19:12 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Expand the **Continuous Integration and Deployment** section.
1. In the **CI/CD limits** section, you can set the following limits:
- **Maximum number of jobs in a single pipeline**
- **Total number of jobs in currently active pipelines**
- **Maximum number of active pipelines per project**
- **Maximum number of pipeline subscriptions to and from a project**
- **Maximum number of pipeline schedules**
- **Maximum number of DAG dependencies that a job can have**
- **Maximum number of runners registered per group**
- **Maximum number of runners registered per project**
2021-11-18 22:05:49 +05:30
## Enable or disable the pipeline suggestion banner
By default, a banner displays in merge requests with no pipeline suggesting a
walkthrough on how to add one.
2021-12-11 22:18:48 +05:30
![Suggest pipeline banner](img/suggest_pipeline_banner_v14_5.png)
2021-11-18 22:05:49 +05:30
To enable or disable the banner:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-11-18 22:05:49 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Select or clear the **Enable pipeline suggestion banner** checkbox.
1. Select **Save changes**.
2022-07-16 23:28:13 +05:30
## Required pipeline configuration **(ULTIMATE SELF)**
2019-09-30 21:07:59 +05:30
2022-07-16 23:28:13 +05:30
> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/352316) from GitLab Premium to GitLab Ultimate in 15.0.
2022-04-04 11:22:00 +05:30
2022-01-26 12:08:38 +05:30
NOTE:
2022-11-25 23:54:43 +05:30
An alternative [compliance solution](../../group/manage.md#configure-a-compliance-pipeline)
2022-01-26 12:08:38 +05:30
is available. We recommend this alternative solution because it provides greater flexibility,
allowing required pipelines to be assigned to specific compliance framework labels.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
You can set a [CI/CD template](../../../ci/examples/index.md#cicd-templates)
2021-09-04 01:27:46 +05:30
as a required pipeline configuration for all projects on a GitLab instance. You can
use a template from:
2019-09-30 21:07:59 +05:30
2021-09-04 01:27:46 +05:30
- The default CI/CD templates.
- A custom template stored in an [instance template repository](instance_template_repository.md).
2019-09-30 21:07:59 +05:30
2021-09-04 01:27:46 +05:30
NOTE:
When you use a configuration defined in an instance template repository,
2021-09-30 23:02:18 +05:30
nested [`include:`](../../../ci/yaml/index.md#include) keywords
2021-09-04 01:27:46 +05:30
(including `include:file`, `include:local`, `include:remote`, and `include:template`)
[do not work](https://gitlab.com/gitlab-org/gitlab/-/issues/35345).
2019-09-30 21:07:59 +05:30
2021-09-04 01:27:46 +05:30
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
2021-09-30 23:02:18 +05:30
added the project configuration with the [`include` keyword](../../../ci/yaml/index.md#include).
2021-09-04 01:27:46 +05:30
To view a project's full merged configuration, [View the merged YAML](../../../ci/pipeline_editor/index.md#view-expanded-configuration)
in the pipeline editor.
2021-03-08 18:12:59 +05:30
2021-09-04 01:27:46 +05:30
To select a CI/CD template for the required pipeline configuration:
2019-09-30 21:07:59 +05:30
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
2019-09-30 21:07:59 +05:30
1. Expand the **Required pipeline configuration** section.
2021-09-04 01:27:46 +05:30
1. Select a CI/CD template from the dropdown.
2022-05-07 20:08:51 +05:30
1. Select **Save changes**.
2019-09-30 21:07:59 +05:30
2020-11-24 15:15:51 +05:30
## Package Registry configuration
2022-10-11 01:57:18 +05:30
### Maven Forwarding **(PREMIUM SELF)**
GitLab administrators can disable the forwarding of Maven requests to [Maven Central](https://search.maven.org/).
To disable forwarding Maven requests:
1. On the top bar, select **Menu > Admin**.
1. On the left sidebar, select **Settings > CI/CD**.
1. Expand the **Package Registry** section.
1. Clear the checkbox **Forward Maven package requests to the Maven Registry if the packages are not found in the GitLab Package Registry**.
1. Select **Save changes**.
2021-03-11 19:13:27 +05:30
### npm Forwarding **(PREMIUM SELF)**
2020-04-08 14:13:33 +05:30
2021-03-11 19:13:27 +05:30
GitLab administrators can disable the forwarding of npm requests to [npmjs.com](https://www.npmjs.com/).
2020-04-08 14:13:33 +05:30
To disable it:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
2020-04-08 14:13:33 +05:30
1. Expand the **Package Registry** section.
2021-10-27 15:23:28 +05:30
1. Clear the checkbox **Forward npm package requests to the npm Registry if the packages are not found in the GitLab Package Registry**.
1. Select **Save changes**.
### PyPI Forwarding **(PREMIUM SELF)**
GitLab administrators can disable the forwarding of PyPI requests to [pypi.org](https://pypi.org/).
To disable it:
2020-04-08 14:13:33 +05:30
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-10-27 15:23:28 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Expand the **Package Registry** section.
1. Clear the checkbox **Forward PyPI package requests to the PyPI Registry if the packages are not found in the GitLab Package Registry**.
1. Select **Save changes**.
2020-11-24 15:15:51 +05:30
### Package file size limits
GitLab administrators can adjust the maximum allowed file size for each package type.
To set the maximum file size:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2021-09-04 01:27:46 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
2020-11-24 15:15:51 +05:30
1. Expand the **Package Registry** section.
1. Find the package type you would like to adjust.
1. Enter the maximum file size, in bytes.
2022-05-07 20:08:51 +05:30
1. Select **Save size limits**.
2021-03-11 19:13:27 +05:30
2022-03-02 08:16:31 +05:30
## Prevent users from registering runners
2022-11-25 23:54:43 +05:30
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/22225) in GitLab 14.1.
> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/368008) in GitLab 15.5.
2021-09-30 23:02:18 +05:30
GitLab administrators can adjust who is allowed to register runners, by showing and hiding areas of the UI.
By default, all members of a project and group are able to register runners.
To change this:
2022-10-11 01:57:18 +05:30
1. On the top bar, select **Main menu > Admin**.
2022-03-02 08:16:31 +05:30
1. On the left sidebar, select **Settings > CI/CD**.
1. Expand **Runner registration**.
1. Clear the checkbox if you don't want to display runner registration
information in the UI for group or project members.
1. Select **Save changes**.
2021-09-30 23:02:18 +05:30
2022-03-02 08:16:31 +05:30
WARNING:
When the registration sections are hidden in the UI, members of the project or group that need to register runners must contact the administrators. If you plan to prevent registration, ensure users have access to the runners they need to run jobs.
2021-09-30 23:02:18 +05:30
2021-03-11 19:13:27 +05:30
## Troubleshooting
### 413 Request Entity Too Large
When build jobs fail with the following error,
increase the [maximum artifacts size](#maximum-artifacts-size).
```plaintext
Uploading artifacts as "archive" to coordinator... too large archive <job-id> responseStatus=413 Request Entity Too Large status=413" at end of a build job on pipeline when trying to store artifacts to <object-storage>.
```