From a6b4506e1909ebc6234cdcd344a280959e4005b8 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 20 Apr 2023 15:05:15 +0000 Subject: Add latest changes from gitlab-org/gitlab@15-10-stable-ee --- danger/database/Dangerfile | 2 ++ danger/datateam/Dangerfile | 2 ++ danger/product_intelligence/Dangerfile | 2 ++ danger/roulette/Dangerfile | 3 +++ spec/tooling/danger/stable_branch_spec.rb | 22 ++++++++++++++++++++++ tooling/danger/stable_branch.rb | 4 ++-- 6 files changed, 33 insertions(+), 2 deletions(-) diff --git a/danger/database/Dangerfile b/danger/database/Dangerfile index df6ffab7c94..96134ea66a6 100644 --- a/danger/database/Dangerfile +++ b/danger/database/Dangerfile @@ -45,6 +45,8 @@ geo_migration_created = !git.added_files.grep(%r{\Aee/db/geo/(post_)?migrate/}). format_str = helper.ci? ? SCHEMA_NOT_UPDATED_MESSAGE_FULL : SCHEMA_NOT_UPDATED_MESSAGE_SHORT +return if stable_branch.valid_stable_branch? + if non_geo_migration_created && !non_geo_db_schema_updated warn format(format_str, migrations: 'migrations', schema: helper.html_link("db/structure.sql")) end diff --git a/danger/datateam/Dangerfile b/danger/datateam/Dangerfile index ed2703f31e6..3cd0578a068 100644 --- a/danger/datateam/Dangerfile +++ b/danger/datateam/Dangerfile @@ -1,3 +1,5 @@ # frozen_string_literal: true +return if stable_branch.valid_stable_branch? + markdown(datateam.build_message) if datateam.impacted? diff --git a/danger/product_intelligence/Dangerfile b/danger/product_intelligence/Dangerfile index 86888fe542e..b20c56a7b7c 100644 --- a/danger/product_intelligence/Dangerfile +++ b/danger/product_intelligence/Dangerfile @@ -1,5 +1,7 @@ # frozen_string_literal: true +return if stable_branch.valid_stable_branch? + product_intelligence.check! product_intelligence.check_affected_scopes! diff --git a/danger/roulette/Dangerfile b/danger/roulette/Dangerfile index 32899c4d74f..3256ff25bbf 100644 --- a/danger/roulette/Dangerfile +++ b/danger/roulette/Dangerfile @@ -104,6 +104,9 @@ categories << :product_intelligence if helper.mr_labels.include?("product intell # Skip Product intelligence reviews for growth experiment MRs categories.delete(:product_intelligence) if helper.mr_labels.include?("growth experiment") +# Skip specialty reviews for stable branch MRs since they have already been merged to the default branch +categories.subtract([:database, :ux, :product_intelligence]) if stable_branch.valid_stable_branch? + if changes.any? random_roulette_spins = roulette.spin(nil, categories, timezone_experiment: false) diff --git a/spec/tooling/danger/stable_branch_spec.rb b/spec/tooling/danger/stable_branch_spec.rb index b0a8ab3c132..fc644413a5a 100644 --- a/spec/tooling/danger/stable_branch_spec.rb +++ b/spec/tooling/danger/stable_branch_spec.rb @@ -351,4 +351,26 @@ RSpec.describe Tooling::Danger::StableBranch, feature_category: :delivery do it { is_expected.to eq(result) } end end + + describe '#valid_stable_branch?' do + it "returns false when on the default branch" do + allow(fake_helper).to receive(:mr_target_branch).and_return('main') + + expect(stable_branch.valid_stable_branch?).to be(false) + end + + it "returns true when on a stable branch" do + allow(fake_helper).to receive(:mr_target_branch).and_return('15-1-stable-ee') + allow(fake_helper).to receive(:security_mr?).and_return(false) + + expect(stable_branch.valid_stable_branch?).to be(true) + end + + it "returns false when on a stable branch on a security MR" do + allow(fake_helper).to receive(:mr_target_branch).and_return('15-1-stable-ee') + allow(fake_helper).to receive(:security_mr?).and_return(true) + + expect(stable_branch.valid_stable_branch?).to be(false) + end + end end diff --git a/tooling/danger/stable_branch.rb b/tooling/danger/stable_branch.rb index 2751a6f0191..9deb4838079 100644 --- a/tooling/danger/stable_branch.rb +++ b/tooling/danger/stable_branch.rb @@ -85,12 +85,12 @@ module Tooling !has_flaky_failure_label? end - private - def valid_stable_branch? !!stable_target_branch && !helper.security_mr? end + private + def package_and_test_bridge_and_pipeline_status mr_head_pipeline_id = gitlab.mr_json.dig('head_pipeline', 'id') return unless mr_head_pipeline_id -- cgit v1.2.1