diff --git a/danger/database/Dangerfile b/danger/database/Dangerfile index df6ffab7c943a12e0985c00aede03942084a43bf..96134ea66a696727e2616e7f636911c403f76fa8 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 ed2703f31e6f8df5262c8dfcc68f99cb52b39b76..3cd0578a068d834afd82009f892a755e6ce68fae 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 86888fe542e6449bef8db244c4363f4a55b8ad60..b20c56a7b7ce269e5ba20558b38acc06522458c7 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 32899c4d74fb01b04bfc6d083f1fe3c037426fbf..3256ff25bbf1495cc658bf91f8ce2d0d7a83dfca 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 b0a8ab3c1325c10b8309b9ade4591c39d03b19b9..fc644413a5a45023949ea17381e9a7ae036aa7c0 100644 --- a/spec/tooling/danger/stable_branch_spec.rb +++ b/spec/tooling/danger/stable_branch_spec.rb @@ -351,4 +351,26 @@ 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 2751a6f01918d175a2ce8e6b97ee7cb01d6f6abb..9deb4838079e0f92455aa93d453800a7afc6b4eb 100644 --- a/tooling/danger/stable_branch.rb +++ b/tooling/danger/stable_branch.rb @@ -85,12 +85,12 @@ def encourage_package_and_qa_execution? !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