diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-03 18:08:05 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-03 18:08:05 +0300 |
commit | 3dcdea950204629bfcdcc9c0db250adab3b5c1ff (patch) | |
tree | a793950dae379d86284de61350ea12a70b49f8d7 /danger | |
parent | 607646ef528729ebb30e593bce0a0447304fccc7 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'danger')
-rw-r--r-- | danger/specs/Dangerfile | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/danger/specs/Dangerfile b/danger/specs/Dangerfile index 7803fad8472..784ce75fef8 100644 --- a/danger/specs/Dangerfile +++ b/danger/specs/Dangerfile @@ -1,16 +1,35 @@ # frozen_string_literal: true NO_SPECS_LABELS = %w[backstage documentation QA].freeze -NO_NEW_SPEC_MESSAGE = <<~MSG.freeze +NO_NEW_SPEC_MESSAGE = <<~MSG You've made some app changes, but didn't add any tests. That's OK as long as you're refactoring existing code, but please consider adding any of the %<labels>s labels. MSG +EE_CHANGE_WITH_FOSS_SPEC_CHANGE_MESSAGE = <<~MSG +You've made some EE-specific changes, but only made changes to FOSS tests. +This could be a sign that you're testing an EE-specific behavior in a FOSS test. -has_app_changes = !helper.all_changed_files.grep(%r{\A(ee/)?(app|lib|db/(geo/)?(post_)?migrate)/}).empty? -has_spec_changes = !helper.all_changed_files.grep(%r{\A(ee/)?spec/}).empty? +Please make sure the spec files pass in AS-IF-FOSS mode either: + +1. Locally with `FOSS_ONLY=1 bin/rspec -- %<spec_files>s`. +1. In the MR pipeline by verifying that the `rspec foss-impact` job has passed. +1. In the MR pipelines by including `RUN AS-IF-FOSS` in the MR title (you can do it with the ``/title %<mr_title>s [RUN AS-IF-FOSS]`` quick action) and start a new MR pipeline. + +MSG + +has_app_changes = helper.all_changed_files.grep(%r{\A(app|lib|db/(geo/)?(post_)?migrate)/}).any? +has_ee_app_changes = helper.all_changed_files.grep(%r{\Aee/(app|lib|db/(geo/)?(post_)?migrate)/}).any? +spec_changes = helper.all_changed_files.grep(%r{\Aspec/}) +has_spec_changes = spec_changes.any? +has_ee_spec_changes = helper.all_changed_files.grep(%r{\Aee/spec/}).any? new_specs_needed = (gitlab.mr_labels & NO_SPECS_LABELS).empty? -if has_app_changes && !has_spec_changes && new_specs_needed +if (has_app_changes || has_ee_app_changes) && !(has_spec_changes || has_ee_spec_changes) && new_specs_needed warn format(NO_NEW_SPEC_MESSAGE, labels: helper.labels_list(NO_SPECS_LABELS)), sticky: false end + +# The only changes outside `ee/` are in `spec/` +if has_ee_app_changes && has_spec_changes && !(has_app_changes || has_ee_spec_changes) + warn format(EE_CHANGE_WITH_FOSS_SPEC_CHANGE_MESSAGE, spec_files: spec_changes.join(" "), mr_title: gitlab.mr_json['title']), sticky: false +end |