How to enable or disable GitLab CI/CD
To effectively use GitLab CI/CD, you need:
- A valid
.gitlab-ci.yml
file present at the root directory of your project. - A runner properly set up.
You can read our quick start guide to get you started.
If you are using an external CI/CD server like Jenkins or Drone CI, it is advised to disable GitLab CI/CD in order to not have any conflicts with the commits status API.
GitLab CI/CD is exposed via the /pipelines
and /jobs
pages of a project.
Disabling GitLab CI/CD in a project does not delete any previous jobs.
In fact, the /pipelines
and /jobs
pages can still be accessed, although
it's hidden from the left sidebar menu.
GitLab CI/CD is enabled by default on new installations and can be disabled either:
- Individually under each project's settings.
- Site-wide by modifying the settings in
gitlab.yml
andgitlab.rb
for source and Omnibus installations respectively.
This only applies to pipelines run as part of GitLab CI/CD. This doesn't enable or disable pipelines that are run from an external integration.
Per-project user setting
To enable or disable GitLab CI/CD Pipelines in your project:
- Navigate to Settings > General > Visibility, project features, permissions.
- Expand the Repository section
- Enable or disable the Pipelines toggle as required.
Project visibility also affects pipeline visibility. If set to:
- Private: Only project members can access pipelines.
- Internal or Public: Pipelines can be set to either Only Project Members or Everyone With Access via the dropdown box.
Press Save changes for the settings to take effect.
Site-wide admin setting
You can disable GitLab CI/CD site-wide, by modifying the settings in gitlab.yml
for source installations, and gitlab.rb
for Omnibus installations.
Two things to note:
- Disabling GitLab CI/CD affects only newly-created projects. Projects that had it enabled prior to this modification work as before.
- Even if you disable GitLab CI/CD, users can still enable it in the project's settings.
For installations from source, open gitlab.yml
with your editor and set
builds
to false
:
## Default project features settings
default_projects_features:
issues: true
merge_requests: true
wiki: true
snippets: false
builds: false
Save the file and restart GitLab:
sudo service gitlab restart
For Omnibus installations, edit /etc/gitlab/gitlab.rb
and add the line:
gitlab_rails['gitlab_default_projects_features_builds'] = false
Save the file and reconfigure GitLab:
sudo gitlab-ctl reconfigure