Commit 67c95646 authored by Stan Hu's avatar Stan Hu

Merge branch '243747-remove-ci_child_of_child_pipeline' into 'master'

Remove FF ci_child_of_child_pipeline

See merge request gitlab-org/gitlab!45395
parents ea88b7e4 7c363c4e
...@@ -829,16 +829,9 @@ module Ci ...@@ -829,16 +829,9 @@ module Ci
end end
def same_family_pipeline_ids def same_family_pipeline_ids
if ::Gitlab::Ci::Features.child_of_child_pipeline_enabled?(project) ::Gitlab::Ci::PipelineObjectHierarchy.new(
::Gitlab::Ci::PipelineObjectHierarchy.new( base_and_ancestors(same_project: true), options: { same_project: true }
base_and_ancestors(same_project: true), options: { same_project: true } ).base_and_descendants.select(:id)
).base_and_descendants.select(:id)
else
# If pipeline is a child of another pipeline, include the parent
# and the siblings, otherwise return only itself and children.
parent = parent_pipeline || self
[parent.id] + parent.child_pipelines.pluck(:id)
end
end end
def build_with_artifacts_in_self_and_descendants(name) def build_with_artifacts_in_self_and_descendants(name)
......
...@@ -77,16 +77,9 @@ module Ci ...@@ -77,16 +77,9 @@ module Ci
# TODO: Remove this condition if favour of model validation # TODO: Remove this condition if favour of model validation
# https://gitlab.com/gitlab-org/gitlab/issues/38338 # https://gitlab.com/gitlab-org/gitlab/issues/38338
if ::Gitlab::Ci::Features.child_of_child_pipeline_enabled?(project) if has_max_descendants_depth?
if has_max_descendants_depth? @bridge.drop!(:reached_max_descendant_pipelines_depth)
@bridge.drop!(:reached_max_descendant_pipelines_depth) return false
return false
end
else
if @bridge.triggers_child_pipeline? && @bridge.pipeline.parent_pipeline.present?
@bridge.drop!(:bridge_pipeline_is_child_pipeline)
return false
end
end end
unless can_create_downstream_pipeline?(target_ref) unless can_create_downstream_pipeline?(target_ref)
......
---
name: ci_child_of_child_pipeline
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41102
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/243747
group: group::continuous integration
type: development
default_enabled: true
...@@ -164,36 +164,13 @@ This is [resolved in GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/issues ...@@ -164,36 +164,13 @@ This is [resolved in GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/issues
## Nested child pipelines ## Nested child pipelines
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/29651) in GitLab 13.4. > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/29651) in GitLab 13.4.
> - It's [deployed behind a feature flag](../user/feature_flags.md), enabled by default. > - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/243747) in GitLab 13.5.
> - It's enabled on GitLab.com.
> - It's recommended for production use.
> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-nested-child-pipelines). **(CORE ONLY)**
Parent and child pipelines were introduced with a maximum depth of one level of child Parent and child pipelines were introduced with a maximum depth of one level of child
pipelines, which was later increased to two. A parent pipeline can trigger many child pipelines, which was later increased to two. A parent pipeline can trigger many child
pipelines, and these child pipelines can trigger their own child pipelines. It's not pipelines, and these child pipelines can trigger their own child pipelines. It's not
possible to trigger another level of child pipelines. possible to trigger another level of child pipelines.
### Enable or disable nested child pipelines **(CORE ONLY)**
Nested child pipelines with a depth of two are under development but ready for
production use. This feature is deployed behind a feature flag that is **enabled by default**.
[GitLab administrators with access to the GitLab Rails console](../administration/feature_flags.md)
can opt to disable it.
To enable it:
```ruby
Feature.enable(:ci_child_of_child_pipeline)
```
To disable it:
```ruby
Feature.disable(:ci_child_of_child_pipeline)
```
## Pass variables to a child pipeline ## Pass variables to a child pipeline
You can [pass variables to a downstream pipeline](multi_project_pipelines.md#passing-variables-to-a-downstream-pipeline). You can [pass variables to a downstream pipeline](multi_project_pipelines.md#passing-variables-to-a-downstream-pipeline).
...@@ -46,10 +46,6 @@ module Gitlab ...@@ -46,10 +46,6 @@ module Gitlab
Feature.enabled?(:project_transactionless_destroy, project, default_enabled: false) Feature.enabled?(:project_transactionless_destroy, project, default_enabled: false)
end end
def self.child_of_child_pipeline_enabled?(project)
::Feature.enabled?(:ci_child_of_child_pipeline, project, default_enabled: true)
end
def self.trace_overwrite? def self.trace_overwrite?
::Feature.enabled?(:ci_trace_overwrite, type: :ops, default_enabled: false) ::Feature.enabled?(:ci_trace_overwrite, type: :ops, default_enabled: false)
end end
......
...@@ -325,20 +325,6 @@ RSpec.describe Ci::CreateDownstreamPipelineService, '#execute' do ...@@ -325,20 +325,6 @@ RSpec.describe Ci::CreateDownstreamPipelineService, '#execute' do
expect(bridge.reload).to be_success expect(bridge.reload).to be_success
end end
context 'when FF ci_child_of_child_pipeline is disabled' do
before do
stub_feature_flags(ci_child_of_child_pipeline: false)
end
it 'does not create a further child pipeline' do
expect { service.execute(bridge) }
.not_to change { Ci::Pipeline.count }
expect(bridge.reload).to be_failed
expect(bridge.failure_reason).to eq 'bridge_pipeline_is_child_pipeline'
end
end
end end
context 'when upstream pipeline has a parent pipeline, which has a parent pipeline' do context 'when upstream pipeline has a parent pipeline, which has a parent pipeline' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment