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
2021-02-22 17:27:13 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2019-09-04 21:01:54 +05:30
type: howto
---
2021-09-30 23:02:18 +05:30
# How to enable or disable GitLab CI/CD **(FREE)**
2016-01-14 18:37:52 +05:30
2019-09-04 21:01:54 +05:30
To effectively use GitLab CI/CD, you need:
2021-09-30 23:02:18 +05:30
- A valid [`.gitlab-ci.yml` ](yaml/index.md ) file present at the root directory
2019-09-04 21:01:54 +05:30
of your project.
2021-09-30 23:02:18 +05:30
- A [runner ](runners/index.md ) properly set up.
2019-09-04 21:01:54 +05:30
2021-03-11 19:13:27 +05:30
You can read our [quick start guide ](quick_start/index.md ) to get you started.
2016-01-14 18:37:52 +05:30
2018-03-17 18:26:18 +05:30
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
2016-01-14 18:37:52 +05:30
API.
2021-10-27 15:23:28 +05:30
GitLab CI/CD is exposed by using the `/pipelines` and `/jobs` pages of a project.
2018-03-17 18:26:18 +05:30
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
2017-08-17 22:00:37 +05:30
it's hidden from the left sidebar menu.
2016-01-14 18:37:52 +05:30
2019-09-04 21:01:54 +05:30
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` and `gitlab.rb` for source
and Omnibus installations respectively.
2016-01-14 18:37:52 +05:30
2021-02-22 17:27:13 +05:30
This only applies to pipelines run as part of GitLab CI/CD. This doesn't enable or disable
2020-04-22 19:07:51 +05:30
pipelines that are run from an [external integration ](../user/project/integrations/overview.md#integrations-listing ).
2019-12-21 20:55:43 +05:30
2018-03-17 18:26:18 +05:30
## Per-project user setting
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
To enable or disable GitLab CI/CD pipelines in your project:
2019-12-21 20:55:43 +05:30
2021-10-27 15:23:28 +05:30
1. On the top bar, select **Menu > Projects** and find your project.
1. On the left sidebar, select **Settings > General** .
1. Expand **Visibility, project features, permissions** .
1. In the **Repository** section, turn on or off **CI/CD** as required.
2020-01-01 13:55:28 +05:30
2021-02-22 17:27:13 +05:30
**Project visibility** also affects pipeline visibility. If set to:
2020-01-01 13:55:28 +05:30
- **Private**: Only project members can access pipelines.
- **Internal** or **Public** : Pipelines can be set to either **Only Project Members**
2021-10-27 15:23:28 +05:30
or **Everyone With Access** by using the dropdown box.
2019-12-21 20:55:43 +05:30
Press **Save changes** for the settings to take effect.
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
## Make GitLab CI/CD disabled by default in new projects
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
You can set GitLab CI/CD to be disabled by default in all new projects by modifying the settings in:
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
- `gitlab.yml` for source installations.
- `gitlab.rb` for Omnibus GitLab installations.
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
Existing projects that already had CI/CD enabled are unchanged. Also, this setting only changes
the project default, so project owners can still enable CI/CD in the project settings.
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
For installations from source:
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
1. Open `gitlab.yml` with your editor and set `builds` to `false` :
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
```yaml
## Default project features settings
default_projects_features:
issues: true
merge_requests: true
wiki: true
snippets: false
builds: false
```
2019-09-04 21:01:54 +05:30
2021-10-27 15:23:28 +05:30
1. Save the `gitlab.yml` file.
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
1. Restart GitLab:
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
```shell
sudo service gitlab restart
```
2016-01-14 18:37:52 +05:30
2021-10-27 15:23:28 +05:30
For Omnibus GitLab installations:
2019-09-04 21:01:54 +05:30
2021-10-27 15:23:28 +05:30
1. Edit `/etc/gitlab/gitlab.rb` and add this line:
```ruby
gitlab_rails['gitlab_default_projects_features_builds'] = false
```
1. Save the `/etc/gitlab/gitlab.rb` file.
1. Reconfigure GitLab:
```shell
sudo gitlab-ctl reconfigure
```
2019-09-04 21:01:54 +05:30
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.
Each scenario can be a third-level heading, e.g. `### Getting error message X` .
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->