diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-19 09:09:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-19 09:09:21 +0300 |
commit | c4e03a0f9695e2c0e73084873da3464570886699 (patch) | |
tree | e4e5812dd990232b1440d0aee8e2bbdf0e823090 | |
parent | b96e93e10ea82d484e226874bd91dc83f092fe0d (diff) |
Add latest changes from gitlab-org/gitlab@master
6 files changed, 38 insertions, 3 deletions
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index edacbee8cab..c2d16582a68 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -132,6 +132,14 @@ - "config/webpack.config.js" - "config/helpers/*.js" +.frontend-build-patterns: &frontend-build-patterns + - "{package.json,yarn.lock}" + - "babel.config.js" + - "config/webpack.config.js" + - "config/**/*.js" + - "vendor/assets/**/*" + - "{,ee/}app/assets/**/*" + .frontend-patterns: &frontend-patterns - "{package.json,yarn.lock}" - "babel.config.js" @@ -467,7 +475,7 @@ - <<: *if-not-canonical-namespace when: never - if: '$DANGER_GITLAB_API_TOKEN && $CI_MERGE_REQUEST_IID && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH' - changes: *frontend-patterns + changes: *frontend-build-patterns allow_failure: true ################ diff --git a/changelogs/unreleased/327593-optimize-user-current-highest-access-level.yml b/changelogs/unreleased/327593-optimize-user-current-highest-access-level.yml new file mode 100644 index 00000000000..25c0620becd --- /dev/null +++ b/changelogs/unreleased/327593-optimize-user-current-highest-access-level.yml @@ -0,0 +1,5 @@ +--- +title: Add partial index on members to optimize highest access level query +merge_request: 59455 +author: +type: performance diff --git a/db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb b/db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb new file mode 100644 index 00000000000..fb379d48b2a --- /dev/null +++ b/db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class IndexMembersOnUserIdAccessLevelRequestedAtIsNull < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + disable_ddl_transaction! + + INDEX_NAME = 'index_members_on_user_id_and_access_level_requested_at_is_null' + + def up + add_concurrent_index(:members, [:user_id, :access_level], where: 'requested_at IS NULL', name: INDEX_NAME) + end + + def down + remove_concurrent_index_by_name(:members, INDEX_NAME) + end +end diff --git a/db/schema_migrations/20210415074645 b/db/schema_migrations/20210415074645 new file mode 100644 index 00000000000..d996f095dce --- /dev/null +++ b/db/schema_migrations/20210415074645 @@ -0,0 +1 @@ +393a7f1029f05f73c26e031c8980734e13c304846c3457d581c006dc2566d94d
\ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 2d4b0d96fd7..00c5881e672 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -23035,6 +23035,8 @@ CREATE INDEX index_members_on_requested_at ON members USING btree (requested_at) CREATE INDEX index_members_on_source_id_and_source_type ON members USING btree (source_id, source_type); +CREATE INDEX index_members_on_user_id_and_access_level_requested_at_is_null ON members USING btree (user_id, access_level) WHERE (requested_at IS NULL); + CREATE INDEX index_members_on_user_id_created_at ON members USING btree (user_id, created_at) WHERE ((ldap = true) AND ((type)::text = 'GroupMember'::text) AND ((source_type)::text = 'Namespace'::text)); CREATE INDEX index_members_on_user_id_source_id_source_type ON members USING btree (user_id, source_id, source_type); diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb index c5d73d2fd7d..01aada2d6dd 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb @@ -39,6 +39,7 @@ module QA needs: [test_blocked_pipeline] script: echo do not click me when: manual + allow_failure: false dummy_job: stage: deploy @@ -71,8 +72,9 @@ module QA it 'can still merge MR successfully', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/971' do Page::MergeRequest::Show.perform do |show| - show.wait_until(reload: false) { show.has_pipeline_status?('running') } - show.merge_immediately! + # waiting for manual action status shows status badge 'blocked' on pipelines page + show.wait_until(reload: false) { show.has_pipeline_status?('waiting for manual action') } + show.merge! expect(show).to be_merged end |