summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-05-05 03:08:53 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-05-05 03:08:53 +0000
commit082a47557774c89745c66e08c0a4171a53e7bdb2 (patch)
treefcd455b1ac5ea44ed159746692c1bd7bbbbf5292
parent039ba7ce2dc10889bbdb4abf4c398701a87a1f58 (diff)
downloadgitlab-ce-082a47557774c89745c66e08c0a4171a53e7bdb2.tar.gz
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/ci/static-analysis.gitlab-ci.yml3
-rw-r--r--data/removals/15_0/15-0-removal-testcoveragesetting.yml6
-rw-r--r--doc/ci/pipelines/settings.md26
-rw-r--r--doc/development/documentation/site_architecture/index.md75
-rw-r--r--doc/update/removals.md4
-rw-r--r--doc/user/search/global_search/advanced_search_syntax.md58
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb7
-rwxr-xr-xscripts/qa/quarantine-types-check62
9 files changed, 137 insertions, 106 deletions
diff --git a/.gitlab/ci/static-analysis.gitlab-ci.yml b/.gitlab/ci/static-analysis.gitlab-ci.yml
index 4fe521910cb..f4cfdc1b1b9 100644
--- a/.gitlab/ci/static-analysis.gitlab-ci.yml
+++ b/.gitlab/ci/static-analysis.gitlab-ci.yml
@@ -112,7 +112,7 @@ rubocop:
script:
- run_timed_command "bundle exec rubocop --parallel"
-qa:testcases:
+qa:metadata-lint:
extends:
- .static-analysis-base
- .static-analysis:rules:ee-and-foss-qa
@@ -124,6 +124,7 @@ qa:testcases:
- run_timed_command "bundle exec bin/qa Test::Instance::All http://localhost:3000 --test-metadata-only"
- cd ..
- run_timed_command "./scripts/qa/testcases-check qa/tmp/test-metadata.json"
+ - run_timed_command "./scripts/qa/quarantine-types-check qa/tmp/test-metadata.json"
variables:
USE_BUNDLE_INSTALL: "false"
SETUP_DB: "false"
diff --git a/data/removals/15_0/15-0-removal-testcoveragesetting.yml b/data/removals/15_0/15-0-removal-testcoveragesetting.yml
index b929eaa96dd..bd72a28f0db 100644
--- a/data/removals/15_0/15-0-removal-testcoveragesetting.yml
+++ b/data/removals/15_0/15-0-removal-testcoveragesetting.yml
@@ -4,10 +4,10 @@
removal_milestone: "15.0" # The milestone when this feature is being removed.
removal_date: "2022-05-22" # This should almost always be the 22nd of a month (YYYY-MM-DD), the date of the milestone release when this feature will be removed.
breaking_change: true # Change to true if this removal is a breaking change.
- reporter: exampleuser # GitLab username of the person reporting the removal
+ reporter: jreporter # GitLab username of the person reporting the removal
body: | # Do not modify this line, instead modify the lines below.
- To specify a test coverage pattern, beginning in GitLab 15.0 the
- [project setting for test coverage parsing](https://docs.gitlab.com/ee/ci/pipelines/settings.html#add-test-coverage-results-to-a-merge-request-deprecated)
+ To specify a test coverage pattern, in GitLab 15.0 the
+ [project setting for test coverage parsing](https://docs.gitlab.com/ee/ci/pipelines/settings.html#add-test-coverage-results-to-a-merge-request-removed)
has been removed.
To set test coverage parsing, use the project’s `.gitlab-ci.yml` file by providing a regular expression with the
diff --git a/doc/ci/pipelines/settings.md b/doc/ci/pipelines/settings.md
index f4a658275c0..a1180064c21 100644
--- a/doc/ci/pipelines/settings.md
+++ b/doc/ci/pipelines/settings.md
@@ -222,37 +222,17 @@ averaged.
To add test coverage results to a merge request using the project's `.gitlab-ci.yml` file, provide a regular expression
using the [`coverage`](../yaml/index.md#coverage) keyword.
-Setting the regular expression this way takes precedence over project settings.
+<!-- start_remove The following content will be removed on remove_date: '2023-08-22' -->
-### Add test coverage results using project settings (REMOVED)
+### Add test coverage results using project settings (removed)
> [Deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/17633) in GitLab 14.8. Replaced by [`coverage` keyword](../yaml/index.md#coverage).
> [Removed](https://gitlab.com/gitlab-org/gitlab/-/issues/17633) in GitLab 15.0.
-WARNING:
This feature is in its end-of-life process. It was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/17633)
in GitLab 14.8. The feature is [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/17633) in GitLab 15.0.
-You can add test coverage results to merge requests using the Project's CI/CD settings:
-
-- Set using the GitLab UI:
-
- 1. On the top bar, select **Menu > Projects** and find your project.
- 1. On the left sidebar, select **Settings > CI/CD**.
- 1. Expand **General pipelines**.
- 1. In the **Test coverage parsing** field, enter a regular expression. Leave blank to disable this feature.
-
-- Set when [editing a project](../../api/projects.md#edit-project) or [creating a project](../../api/projects.md#create-project)
- using the GitLab API with the `build_coverage_regex` attribute:
-
- ```shell
- curl --request PUT --header "PRIVATE-TOKEN: <your-token>" \
- --url 'https://gitlab.com/api/v4/projects/<your-project-ID>' \
- --data "build_coverage_regex=<your-regular-expression>"
- ```
-
-You can use <https://rubular.com> to test your regular expression. The regular expression returns the **last**
-match found in the output.
+<!-- end_remove -->
### Test coverage examples
diff --git a/doc/development/documentation/site_architecture/index.md b/doc/development/documentation/site_architecture/index.md
index bdda15e2064..3566ab82379 100644
--- a/doc/development/documentation/site_architecture/index.md
+++ b/doc/development/documentation/site_architecture/index.md
@@ -22,25 +22,29 @@ from where content is sourced, the `gitlab-docs` project, and the published outp
```mermaid
graph LR
- A[gitlab/doc]
- B[gitlab-runner/docs]
- C[omnibus-gitlab/doc]
- D[charts/doc]
- E[gitlab-docs]
- A --> E
- B --> E
- C --> E
- D --> E
- E -- Build pipeline --> F
- F[docs.gitlab.com]
- H[/ee/]
- I[/runner/]
- J[/omnibus/]
- K[/charts/]
- F --> H
- F --> I
- F --> J
- F --> K
+ A[gitlab-org/gitlab/doc]
+ B[gitlab-org/gitlab-runner/docs]
+ C[gitlab-org/omnibus-gitlab/doc]
+ D[gitlab-org/charts/gitlab/doc]
+ E[gitlab-org/cloud-native/gitlab-operator/doc]
+ Y[gitlab-org/gitlab-docs]
+ A --> Y
+ B --> Y
+ C --> Y
+ D --> Y
+ E --> Y
+ Y -- Build pipeline --> Z
+ Z[docs.gitlab.com]
+ M[//ee/]
+ N[//runner/]
+ O[//omnibus/]
+ P[//charts/]
+ Q[//operator/]
+ Z --> M
+ Z --> N
+ Z --> O
+ Z --> P
+ Z --> Q
```
GitLab docs content isn't kept in the `gitlab-docs` repository.
@@ -48,9 +52,10 @@ All documentation files are hosted in the respective repository of each
product, and all together are pulled to generate the docs website:
- [GitLab](https://gitlab.com/gitlab-org/gitlab/-/tree/master/doc)
-- [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/tree/master/doc)
+- [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/-/tree/master/doc)
- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/-/tree/main/docs)
-- [GitLab Chart](https://gitlab.com/charts/gitlab/tree/master/doc)
+- [GitLab Chart](https://gitlab.com/gitlab-org/charts/gitlab/-/tree/master/doc)
+- [GitLab Operator](https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/tree/master/doc)
Learn more about [the docs folder structure](folder_structure.md).
@@ -231,31 +236,9 @@ If you don't specify `editor:`, the simple one is used by default.
## Algolia search engine
The docs site uses [Algolia DocSearch](https://community.algolia.com/docsearch/)
-for its search function. This is how it works:
-
-1. GitLab is a member of the [DocSearch program](https://community.algolia.com/docsearch/#join-docsearch-program),
- which is the free tier of [Algolia](https://www.algolia.com/).
-1. Algolia hosts a [DocSearch configuration](https://github.com/algolia/docsearch-configs/blob/master/configs/gitlab.json)
- for the GitLab docs site, and we've worked together to refine it.
-1. That [configuration](https://community.algolia.com/docsearch/config-file.html) is
- parsed by their [crawler](https://community.algolia.com/docsearch/crawler-overview.html)
- every 24h and [stores](https://community.algolia.com/docsearch/inside-the-engine.html)
- the [DocSearch index](https://community.algolia.com/docsearch/how-do-we-build-an-index.html)
- on [Algolia's servers](https://community.algolia.com/docsearch/faq.html#where-is-my-data-hosted%3F).
-1. On the docs side, we use a [DocSearch layout](https://gitlab.com/gitlab-org/gitlab-docs/blob/main/layouts/docsearch.html) which
- is present on pretty much every page except <https://docs.gitlab.com/search/>,
- which uses its [own layout](https://gitlab.com/gitlab-org/gitlab-docs/blob/main/layouts/instantsearch.html). In those layouts,
- there's a JavaScript snippet which initiates DocSearch by using an API key
- and an index name (`gitlab`) that are needed for Algolia to show the results.
-
-### Algolia notes for GitLab team members
-
-If you're a GitLab team member, find credentials for the Algolia dashboard
-in the shared [GitLab 1Password account](https://about.gitlab.com/handbook/security/#1password-for-teams).
-To receive weekly reports of the search usage, search the Google doc with
-title `Email, Slack, and GitLab Groups and Aliases`, search for `docsearch`,
-and add a comment with your email to be added to the alias that gets the weekly
-reports.
+for its search function.
+
+Learn more in <https://gitlab.com/gitlab-org/gitlab-docs/-/blob/main/doc/docsearch.md>.
## Monthly release process (versions)
diff --git a/doc/update/removals.md b/doc/update/removals.md
index 88901d9af24..266b6e9fa7b 100644
--- a/doc/update/removals.md
+++ b/doc/update/removals.md
@@ -137,8 +137,8 @@ as a [breaking change](https://docs.gitlab.com/ee/development/contributing/#brea
Before updating GitLab, review the details carefully to determine if you need to make any
changes to your code, settings, or workflow.
-To specify a test coverage pattern, beginning in GitLab 15.0 the
-[project setting for test coverage parsing](https://docs.gitlab.com/ee/ci/pipelines/settings.html#add-test-coverage-results-to-a-merge-request-deprecated)
+To specify a test coverage pattern, in GitLab 15.0 the
+[project setting for test coverage parsing](https://docs.gitlab.com/ee/ci/pipelines/settings.html#add-test-coverage-results-to-a-merge-request-removed)
has been removed.
To set test coverage parsing, use the project’s `.gitlab-ci.yml` file by providing a regular expression with the
diff --git a/doc/user/search/global_search/advanced_search_syntax.md b/doc/user/search/global_search/advanced_search_syntax.md
index 962aa00eea8..a0b2f18a683 100644
--- a/doc/user/search/global_search/advanced_search_syntax.md
+++ b/doc/user/search/global_search/advanced_search_syntax.md
@@ -1,49 +1,51 @@
---
stage: Enablement
group: Global Search
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: reference
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Advanced Search syntax **(PREMIUM)**
With [Advanced Search](../advanced_search.md), you can perform a thorough
-search through your entire GitLab instance.
+search of your entire GitLab instance.
The Advanced Search syntax supports fuzzy or exact search queries with prefixes,
-boolean operators, and much more. Advanced Search uses
+boolean operators, and more. Advanced Search uses
[Elasticsearch's syntax](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html#simple-query-string-syntax).
WARNING:
-Advanced Search searches projects' default branches only.
-
-See query examples on the tables below and their respective expected output.
-The examples link to a search on GitLab.com to help you visualize the output.
+Advanced Search searches default project branches only.
## General search
-| Query example | Expected output |
-|---|---|
-[`“display bug”`](https://gitlab.com/search?snippets=&scope=issues&repository_ref=&search=%22display+bug%22&group_id=9970&project_id=278964) | Returns the **exact phrase** _display bug_ (stemming still applies). |
-[`bug -display`](https://gitlab.com/search?snippets=&scope=issues&repository_ref=&search=bug+-display&group_id=9970&project_id=278964) | Results include _bug_, and **exclude** _display_. |
-[<code>bug &#124; display</code>](https://gitlab.com/search?snippets=&scope=issues&repository_ref=&search=bug+%7C+banner&group_id=9970&project_id=278964) | Results include _bug_ **or** _display_. |
-[<code>bug &#124; (display +banner)</code>](https://gitlab.com/search?snippets=&scope=issues&repository_ref=&search=bug+%7C+%28display+%2Bbanner%29&group_id=9970&project_id=278964) | Results include _bug_ **or** _display_ **and** _banner_. |
-| [`bug error 50*`](https://gitlab.com/search?snippets=&scope=issues&repository_ref=&search=bug+error+50*&group_id=9970&project_id=278964) | `*` finds **partial matches**. Results include _bug_, _error_, and the partial _50_ (looking for any 500 errors, for example). |
-| [`bug \-display`](https://gitlab.com/search?snippets=&scope=blobs&repository_ref=&search=argument+%5C-last&group_id=9970&project_id=278964) | `\` **scapes symbols**. Results include _bug_ **and** _-display_. |
+<!-- markdownlint-disable -->
+
+| Use | Description | Example |
+|-----|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
+| `"` | Exact search | [`"gem sidekiq"`](https://gitlab.com/search?group_id=9970&project_id=278964&scope=blobs&search=%22gem+sidekiq%22) |
+| `|` | Or | [`display | banner`](https://gitlab.com/search?group_id=9970&project_id=278964&scope=blobs&search=display+%7C+banner) |
+| `+` | And | [`display +banner`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=display+%2Bbanner&snippets=) |
+| `-` | Exclude | [`display -banner`](https://gitlab.com/search?group_id=9970&project_id=278964&scope=blobs&search=display+-banner) |
+| `*` | Partial | [`bug error 50*`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=bug+error+50%2A&snippets=) |
+| `\` | Escape | [`\*md`](https://gitlab.com/search?snippets=&scope=blobs&repository_ref=&search=%5C*md&group_id=9970&project_id=278964) |
+
+## Code search
-## Code Search
+| Use | Description | Example |
+|--------------|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `filename:` | File name | [`filename:*spec.rb`](https://gitlab.com/search?snippets=&scope=blobs&repository_ref=&search=filename%3A*spec.rb&group_id=9970&project_id=278964) |
+| `path:` | Repo location | [`path:spec/workers/`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=path%3Aspec%2Fworkers&snippets=) |
+| `extension:` | File extension, without the `.` | [`extension:js`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=extension%3Ajs&snippets=) |
+| `blob:` | Git object ID | [`blob:998707*`](https://gitlab.com/search?snippets=false&scope=blobs&repository_ref=&search=blob%3A998707*&group_id=9970) |
-| Query example | Expected output | Notes |
-|---|---|---|
-| [`filename:*spec.rb`](https://gitlab.com/search?snippets=&scope=blobs&repository_ref=&search=filename%3A*spec.rb&group_id=9970&project_id=278964) | Returns the specified filename. | Use `*` for fuzzy matching. |
-| [`path:spec/controllers/`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=path%3Aspec%2Fcontrollers%2F&snippets=) | Returns the specified path location of the repository. | Use `*` for fuzzy matching. |
-| [`extension:js`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=extension%3Ajs&snippets=) | Returns the specified file extension. | **Do not** include a leading dot. This only works with exact matches for the extension. |
-| [`blob:998707b421c89b*`](https://gitlab.com/search?snippets=false&scope=blobs&repository_ref=&search=blob%3A998707b421c89b*&group_id=9970) | Returns the specified Git object ID. | This only works with exact matches. |
+`extension` and `blob` return exact matches only.
-## Excluding filters
+## Examples
-Filters can also be inverted to filter out results from the result set by prefixing the filter name with a `-` (hyphen) character.
+| Example | Description |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
+| [`rails -filename:gemfile.lock`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=rails+-filename%3Agemfile.lock&snippets=) | Show _rails_ in all files except the _`gemfile.lock`_ file. |
+| [`RSpec.describe Resolvers -*builder`](https://gitlab.com/search?group_id=9970&project_id=278964&scope=blobs&search=RSpec.describe+Resolvers+-*builder) | Show all _RSpec.describe Resolvers_ that don't start with _builder_. |
+| [`bug | (display +banner)`](https://gitlab.com/search?snippets=&scope=issues&repository_ref=&search=bug+%7C+%28display+%2Bbanner%29&group_id=9970&project_id=278964) | Show _bug_ **or** _display_ **and** _banner_. |
-| Query example | Expected output |
-|---|---|
-| [`rails -filename:gemfile.lock`](https://gitlab.com/search?group_id=9970&project_id=278964&repository_ref=&scope=blobs&search=rails+-filename%3Agemfile.lock&snippets=) | Results include _`rails`_ in all files except the _`gemfile.lock`_ file. |
+<!-- markdownlint-enable -->
diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb
index d1e852979d0..b544c9aa211 100644
--- a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb
@@ -5,7 +5,7 @@ module QA
describe 'Merge request creation from fork', quarantine: {
only: :production,
issue: "https://gitlab.com/gitlab-org/gitlab/-/issues/343801",
- type: :investigation
+ type: :investigating
} do
let(:merge_request) do
Resource::MergeRequestFromFork.fabricate_via_browser_ui! do |merge_request|
diff --git a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb
index a97bf3d4ac9..dca6f961047 100644
--- a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb
+++ b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb
@@ -2,8 +2,11 @@
module QA
RSpec.describe 'Configure',
- only: { subdomain: :staging },
- quarantine: { issue: 'https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/1198' } do
+ only: { subdomain: :staging },
+ quarantine: {
+ issue: 'https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/1198',
+ type: :waiting_on
+ } do
let(:project) do
Resource::Project.fabricate_via_api! do |project|
project.name = 'autodevops-project'
diff --git a/scripts/qa/quarantine-types-check b/scripts/qa/quarantine-types-check
new file mode 100755
index 00000000000..44d329a3590
--- /dev/null
+++ b/scripts/qa/quarantine-types-check
@@ -0,0 +1,62 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+require 'json'
+
+QUARANTINE_TYPES = %w[stale bug investigating flaky broken test_environment waiting_on].freeze
+
+missing_issues = []
+quarantine_type_errors = []
+invalid_type_message = %"\n*** The following quarantined tests have invalid types:\n\n%s\n"
+missing_issue_message = %"\n*** The following quarantined tests are missing issue links:\n\n%s\n"
+
+test_metadata_file = ARGV.shift
+
+unless test_metadata_file
+ puts "usage: #{__FILE__} <test_metadata_file>"
+ exit 1
+end
+
+file = File.read(test_metadata_file)
+data_hash = JSON.parse(file)
+
+unless data_hash['examples'].count > 1
+ puts "\nRspec output does not contain examples. Check test-metadata.json file.\n"
+ exit 1
+end
+
+puts "\nAnalyzing quarantined test data...\n"
+
+tests = data_hash['examples']
+
+tests.each do |test|
+ if test['quarantine']
+ unless QUARANTINE_TYPES.include?(test['quarantine']['type'])
+ quarantine_type_errors.push(
+ <<~TYPE_ERRORS
+ ==> #{test['full_description']}
+ in file: #{test['id']}
+ with type: "#{test['quarantine']['type']}"
+ TYPE_ERRORS
+ )
+ end
+
+ missing_issues.push(" ==> #{test['id']} - #{test['full_description']}\n") unless test['quarantine']['issue']
+ end
+end
+
+if quarantine_type_errors.empty? && missing_issues.empty?
+ puts "\nNo errors found."
+else
+ puts "\n*** Quarantine format violations detected! ***\n"
+
+ unless quarantine_type_errors.empty?
+ puts invalid_type_message % quarantine_type_errors.join("\n")
+ puts "*** Please use one of the following quarantine types for the tests listed above.\n"
+ puts " #{QUARANTINE_TYPES}\n"
+ end
+
+ puts missing_issue_message % missing_issues unless missing_issues.empty?
+ puts "See https://about.gitlab.com/handbook/engineering/quality/quality-engineering/debugging-qa-test-failures/#quarantining-tests"
+ exit 1
+end