RSpec metadata for end-to-end tests

This is a partial list of the RSpec metadata (a.k.a. tags) that are used in our end-to-end tests.

Tag Description
:elasticsearch The test requires an Elasticsearch service. It is used by the instance-level scenario Test::Integration::Elasticsearch to include only tests that require Elasticsearch.
:gitaly_cluster The test runs against a GitLab instance where repositories are stored on redundant Gitaly nodes behind a Praefect node. All nodes are separate containers. Tests that use this tag have a longer setup time since there are three additional containers that need to be started.
:jira The test requires a Jira Server. GitLab-QA provisions the Jira Server in a Docker container when the Test::Integration::Jira test scenario is run.
:kubernetes The test includes a GitLab instance that is configured to be run behind an SSH tunnel, allowing a TLS-accessible GitLab. This test also includes provisioning of at least one Kubernetes cluster to test against. This tag is often be paired with :orchestrated.
:only The test is only to be run against specific environments or pipelines. See Environment selection for more information.
:orchestrated The GitLab instance under test may be configured by gitlab-qa to be different to the default GitLab configuration, or gitlab-qa may launch additional services in separate Docker containers, or both. Tests tagged with :orchestrated are excluded when testing environments where we can't dynamically modify the GitLab configuration (for example, Staging).
:quarantine The test has been quarantined, runs in a separate job that only includes quarantined tests, and is allowed to fail. The test is skipped in its regular job so that if it fails it doesn't hold up the pipeline. Note that you can also quarantine a test only when it runs against specific environment.
:reliable The test has been promoted to a reliable test meaning it passes consistently in all pipelines, including merge requests.
:requires_admin The test requires an admin account. Tests with the tag are excluded when run against Canary and Production environments.
:runner The test depends on and sets up a GitLab Runner instance, typically to run a pipeline.
:skip_live_env The test is excluded when run against live deployed environments such as Staging, Canary, and Production.
:testcase The link to the test case issue in the Quality Testcases project.
:mattermost The test requires a GitLab Mattermost service on the GitLab instance.
:ldap_no_server The test requires a GitLab instance to be configured to use LDAP. To be used with the :orchestrated tag. It does not spin up an LDAP server at orchestration time. Instead, it creates the LDAP server at runtime.
:ldap_no_tls The test requires a GitLab instance to be configured to use an external LDAP server with TLS not enabled.
:ldap_tls The test requires a GitLab instance to be configured to use an external LDAP server with TLS enabled.
:object_storage The test requires a GitLab instance to be configured to use multiple object storage types. Uses MinIO as the object storage server.
:smtp The test requires a GitLab instance to be configured to use an SMTP server. Tests SMTP notification email delivery from GitLab by using MailHog.
:group_saml The test requires a GitLab instance that has SAML SSO enabled at the group level. Interacts with an external SAML identity provider. Paired with the :orchestrated tag.
:instance_saml The test requires a GitLab instance that has SAML SSO enabled at the instance level. Interacts with an external SAML identity provider. Paired with the :orchestrated tag.
:skip_signup_disabled The test uses UI to sign up a new user and is skipped in any environment that does not allow new user registration via the UI.
:smoke The test belongs to the test suite which verifies basic functionality of a GitLab instance.
:github The test requires a GitHub personal access token.
:repository_storage The test requires a GitLab instance to be configured to use multiple repository storage paths. Paired with the :orchestrated tag.
:geo The test requires two GitLab Geo instances - a primary and a secondary - to be spun up.
:relative_url The test requires a GitLab instance to be installed under a relative URL.
:requires_git_protocol_v2 The test requires that Git protocol version 2 is enabled on the server. It's assumed to be enabled by default but if not the test can be skipped by setting QA_CAN_TEST_GIT_PROTOCOL_V2 to false.
:requires_praefect The test requires that the GitLab instance uses Gitaly Cluster (a.k.a. Praefect) as the repository storage . It's assumed to be used by default but if not the test can be skipped by setting QA_CAN_TEST_PRAEFECT to false.
:packages The test requires a GitLab instance that has the Package Registry enabled.