gitlab-qa 7.20.0 → 7.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7b10d593ddaeee4b4e931904d7332f845b1fb8f816e5e42d3c79e22634ff680
4
- data.tar.gz: 93b081c8de2108f2b9f17462319b3ac5467671a3b775ab597fbe317b0f7646aa
3
+ metadata.gz: 8b84d309cb564568e54d7247df7a6af8d8bc2290953e3b33c72531a153415cf4
4
+ data.tar.gz: 9270ff23791f40e767cf05a59c08c07e6c6ee53b9f0a3b26a4c9017f3e6809ee
5
5
  SHA512:
6
- metadata.gz: 1f590d463f6fea2e69dba2ad64ac15274011a63863db9c8d9544e24e07c91a683a92709b96f0628d114da4d825bc5a4e5104bdf9c6bbd57750ef2b3f20007ee8
7
- data.tar.gz: 681dd9b8d51cc491a75a4beba08391ffecbb7ecef6218c9db51854d452e4a7a2bf9e9fe36e7e9603608be4d5468d6ecf0462951004eb1f68155715d2a9497216
6
+ metadata.gz: fc7d787a61d9608ab97e402c42a440acc9751022c5e323a572be6299742411d43470dfe9155207cc46dd18561fab53a1b81340f7c388efeb8fa1695dca623871
7
+ data.tar.gz: '04599e2bfac686c3452093d8e356fabaaff705a31c11e8c934bafc8ece1df91cce1defe5b20f5cc1fba83ec3de2d4a52e4885634440946a4c60863dc067a37da'
data/.gitlab-ci.yml CHANGED
@@ -21,9 +21,6 @@ default:
21
21
  - bundle version
22
22
  - bundle config path vendor
23
23
  - bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check
24
- - if [ -n "$TRIGGERED_USER" ] && [ -n "$TRIGGER_SOURCE" ]; then
25
- echo "Pipeline triggered by $TRIGGERED_USER at $TRIGGER_SOURCE";
26
- fi
27
24
  - export LANG=C.UTF-8
28
25
 
29
26
  workflow:
@@ -98,7 +95,11 @@ rspec:
98
95
  .combined-gitlab-qa-options-script:
99
96
  script:
100
97
  - 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS_COMBINED -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
101
- - bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS_COMBINED -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
98
+ - bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS_COMBINED -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
99
+ - bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
100
+ - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
101
+ - if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-results "gitlab-qa-run-*/**/rspec-*.json" --test-case-project "$QA_TESTCASES_REPORTING_PROJECT" --results-issue-project "$QA_TEST_RESULTS_ISSUES_PROJECT" || true; fi
102
+ - exit $test_run_exit_code
102
103
 
103
104
  # The Test::Omnibus::Update scenarios require the release to be specified twice, which can't be done dynamically using the `variables` parameter
104
105
  # So instead we can use this script with two release variables
@@ -1189,6 +1190,21 @@ ee:jira-quarantine:
1189
1190
  variables:
1190
1191
  QA_SCENARIO: "Test::Integration::Jira"
1191
1192
 
1193
+ ce:integrations:
1194
+ extends:
1195
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1196
+ - .test
1197
+ - .high-capacity
1198
+ - .ce-variables
1199
+ - .rspec-report-opts
1200
+ variables:
1201
+ QA_SCENARIO: "Test::Integration::Integrations"
1202
+
1203
+ ce:integrations-quarantine:
1204
+ extends:
1205
+ - ce:integrations
1206
+ - .quarantine
1207
+
1192
1208
  ce:large-setup:
1193
1209
  extends:
1194
1210
  - .rules:ce-never-when-triggered-by-feature-flag-definition-change
data/README.md CHANGED
@@ -88,7 +88,6 @@ of tests.
88
88
  - [How it works](docs/how_it_works.md)
89
89
  - [Release process](docs/release_process.md)
90
90
  - [Run QA tests against your GDK setup](docs/run_qa_against_gdk.md)
91
- - [Running specific orchestrated tests](docs/running_specific_orchestrated_tests.md)
92
91
  - [Trainings](docs/trainings.md)
93
92
  - [Waits](docs/waits.md)
94
93
  - [What tests can be run?](docs/what_tests_can_be_run.md)
@@ -82,6 +82,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa
82
82
  | `QA_INFLUXDB_URL` |- | Influxdb url for test metrics reporting | No|
83
83
  | `QA_INFLUXDB_TOKEN` |- | Influxdb token for test metrics reporting | No|
84
84
  | `QA_RUN_TYPE` |- | QA run type like `staging-full`, `canary`, `production` etc. Used in test metrics reporting | No|
85
+ | `QA_VALIDATE_RESOURCE_REUSE` | `false` | Set to `true` to [validate resource reuse](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/resources.html#reusable-resources) after a test suite | No |
85
86
  | `GITHUB_USERNAME` |- | Username for authenticating with GitHub. | No|
86
87
  | `GITHUB_PASSWORD` |- | Password for authenticating with GitHub. | No|
87
88
  | `GITLAB_QA_LOOP_RUNNER_MINUTES` | `1` | Minutes to run and repeat a spec while using the '--loop' option; default value is 1 minute. | No|
@@ -95,6 +96,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa
95
96
  | `GITLAB_QA_USER_AGENT` |- | The browser user-agent to use instead of the default Chrome user-agent. | No|
96
97
  | `GEO_FAILOVER` | `false` | Set to `true` when a Geo secondary site has been promoted to a Geo primary site. | No|
97
98
  | `GITLAB_INITIAL_ROOT_PASSWORD` | `5iveL!fe` | Initial root password for Omnibus installations | No|
99
+ | `COLORIZED_LOGS` | `false` | Colors GitLab QA and test logs to improve readability | No|
98
100
 
99
101
  ## [Supported Remote Grid environment variables](./running_against_remote_grid.md)
100
102
 
@@ -664,6 +666,20 @@ Example:
664
666
  $ gitlab-qa Test::Integration::Actioncable CE
665
667
  ```
666
668
 
669
+ ### `Test::Integration::Integrations CE|<full image address>`
670
+
671
+ This scenario is intended to test the different integrations that a GitLab instance can offer, such as WebHooks to an external service, Jenkins, etc.
672
+
673
+ To run tests against the GitLab container, a GitLab QA (`gitlab/gitlab-qa`)
674
+ container is spun up and tests are run from it by running the
675
+ `Test::Integration::Integrations` scenario.
676
+
677
+ Example:
678
+
679
+ ```
680
+ $ gitlab-qa Test::Integration::Integrations CE
681
+ ```
682
+
667
683
  ### `Test::Instance::Any CE|EE|<full image address>:nightly|latest|any_tag http://your.instance.gitlab`
668
684
 
669
685
  This tests that a live GitLab instance works as expected by running tests
@@ -877,12 +893,39 @@ $ gitlab-qa Test::Instance::Airgapped EE -- --tag smoke
877
893
 
878
894
  ### `Test::Instance::Image CE|EE|<full image address> --omnibus-config object_storage`
879
895
 
880
- This orchestrated scenario runs tests from the test suite against a GitLab instance which has object storage configured instead of using local storage. The omnibus configuration `object_storage` ([configurator](configuring_omnibus.md)), uses Minio and `object_storage_aws` uses an AWS S3 account with credentials configured in the pipeline as CI Variables (available on 1Password). Requires:
896
+ This orchestrated scenario runs tests from the test suite against a GitLab instance which has object storage configured instead of using local storage. The omnibus configuration `object_storage` ([configurator](configuring_omnibus.md)), uses Minio and `object_storage_aws` uses an AWS S3 account with credentials configured in the pipeline as CI Variables. To use Google Cloud Storage pass `--omnibus-config object_storage_gcp`. According to the storage selected it requires:
897
+
898
+ | Scenario | Variable | Description |
899
+ |-----------------------|---------------------|--------------------------------------|
900
+ | AWS S3 Object Storage | AWS_S3_REGION | AWS region where bucket is created |
901
+ | AWS S3 Object Storage | AWS_S3_KEY_ID | AWS credentials |
902
+ | AWS S3 Object Storage | AWS_S3_ACCESS_KEY | AWS credentials |
903
+ | AWS S3 Object Storage | AWS_S3_BUCKET_NAME | Name of the bucket set in AWS |
904
+ | GCP Object Storage | GCS_BUCKET_NAME | Name of the bucket set in AWS |
905
+ | GCP Object Storage | GOOGLE_JSON_KEY | JSON key credential |
906
+ | GCP Object Storage | GOOGLE_CLIENT_EMAIL | Email address of the service account |
907
+ | GCP Object Storage | GOOGLE_PROJECT | GCP project name |
908
+
909
+ These variables are available at 1Password QA Vault.
910
+
911
+ ### `Test::Integration::RegistryTLS EE`
912
+
913
+ It requires GitLab's TLS certificate found on the [`tls_certificates`](https://gitlab.com/gitlab-org/gitlab-qa/-/blob/master/tls_certificates/gitlab/gitlab.test.crt) folder
914
+ ```
915
+ $ export GITLAB_TLS_CERTIFICATE=$(cat /path/to/certificate.crt)
916
+ ```
917
+
918
+ To run a scenario with an insecure registry enabled use `Test::Integration::Registry EE` instead (it does not require the above certificate).
919
+
920
+ ### Test::Integration::RegistryTLS EE --omnibus-config object_storage
921
+
922
+ This scenario is a composition of two orchestrated scenarios. It tests the container registry (TLS-enabled) integrated with an object storage backend.
923
+
924
+ An example would be to pass the option `--omnibus-config object_storage_aws` and the registry will be pulling and pushing images using AWS Cloud Storage as a storage backend.
881
925
 
882
- * `AWS_S3_REGION` - Region where the bucket is created. To optimize latency, minimize costs, or address regulatory requirements, choose any AWS Region that is geographically close to you.
883
- * `AWS_S3_KEY_ID` - Key ID for the user accessing the bucket.
884
- * `AWS_S3_ACCESS_KEY` - Access Key for the user accessing the bucket.
885
- * `AWS_S3_BUCKET_NAME` - The name of the bucket where objects are stored. After a bucket is created, the name of that bucket cannot be used by another AWS account in any AWS Region until the bucket is deleted.
926
+ ```
927
+ GITLAB_TLS_CERTIFICATE=$(cat /path/to/certificate.crt) gitlab-qa Test::Integration::RegistryTLS EE --omnibus-config object_storage_aws
928
+ ```
886
929
 
887
930
  ### `Test::Instance::Geo EE|<full image address>:nightly|latest|any_tag http://geo-primary.gitlab http://geo-secondary.gitlab`
888
931
 
@@ -0,0 +1,174 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'tempfile'
4
+
5
+ module Gitlab
6
+ module QA
7
+ module Component
8
+ # Component to collect docker metrics
9
+ #
10
+ class Telegraf < Base
11
+ DOCKER_IMAGE = 'telegraf'
12
+ DOCKER_IMAGE_TAG = '1.21-alpine'
13
+ LOG_DIR = '/etc/telegraf/log'
14
+
15
+ def initialize
16
+ super
17
+
18
+ @name = DOCKER_IMAGE
19
+ @host_log_dir = "#{Runtime::Env.host_artifacts_dir}/#{@name}"
20
+ @environment = Runtime::Env.variables.slice(
21
+ 'QA_INFLUXDB_TOKEN',
22
+ 'QA_INFLUXDB_URL',
23
+ 'QA_RUN_TYPE',
24
+ 'CI_JOB_NAME',
25
+ 'CI_PIPELINE_ID'
26
+ )
27
+ end
28
+
29
+ attr_reader :name, :host_log_dir, :telegraf_config
30
+
31
+ # Start container
32
+ #
33
+ # @return [void]
34
+ def start
35
+ docker.run(image: image, tag: tag) do |command|
36
+ set_command_args(command)
37
+ set_volumes(command)
38
+ set_environment(command)
39
+ end
40
+ end
41
+
42
+ # Run prepare commands
43
+ #
44
+ # @return [void]
45
+ def prepare
46
+ @telegraf_config = File.open("#{Dir.mktmpdir(nil, ENV['CI_BUILDS_DIR'])}/telegraf.conf", 'w') do |file|
47
+ file.write(config)
48
+ file.path
49
+ end
50
+ FileUtils.mkdir_p(host_log_dir)
51
+
52
+ prepare_docker_image
53
+ prepare_docker_container
54
+ end
55
+
56
+ # Run teardown
57
+ #
58
+ # @return [void]
59
+ def teardown
60
+ return unless run_telegraf?
61
+
62
+ super
63
+ end
64
+
65
+ private
66
+
67
+ # Set custom run command arguments
68
+ #
69
+ # @param [Docker::Command] command
70
+ # @return [void]
71
+ def set_command_args(command)
72
+ command << '-d'
73
+ command << "--name #{name}"
74
+ command << "--user root"
75
+ command << "--entrypoint telegraf"
76
+ end
77
+
78
+ # Set volumes
79
+ #
80
+ # @param [Docker::Command] command
81
+ # @return [void]
82
+ def set_volumes(command)
83
+ command.volume(host_log_dir, LOG_DIR)
84
+ command.volume('/var/run/docker.sock', '/var/run/docker.sock')
85
+ command.volume(telegraf_config, '/etc/telegraf/telegraf.conf', :ro)
86
+ end
87
+
88
+ # Set environment variables
89
+ #
90
+ # @param [Docker::Command] command
91
+ # @return [void]
92
+ def set_environment(command)
93
+ environment.each { |k, v| command.env(k, v) }
94
+ end
95
+
96
+ # Run main entrypoint
97
+ #
98
+ # @return [void]
99
+ def instance_no_teardown
100
+ if run_telegraf?
101
+ super
102
+ else
103
+ Runtime::Logger.debug("Skipping starting telegraf container!")
104
+ yield self if block_given?
105
+ end
106
+ end
107
+
108
+ # Should telegraf be started
109
+ #
110
+ # Run only on CI and skip if metrics explicitly disabled, run_type not set or influx params missing
111
+ #
112
+ # @return [Boolean]
113
+ def run_telegraf?
114
+ Runtime::Env.ci && Runtime::Env.qa_export_test_metrics? && Runtime::Env.qa_run_type && !missing_influx_config?
115
+ end
116
+
117
+ # Influxdb config params missing
118
+ #
119
+ # @return [Boolean]
120
+ def missing_influx_config?
121
+ environment.slice('QA_INFLUXDB_TOKEN', 'QA_INFLUXDB_URL').any? { |_k, v| v.blank? }
122
+ end
123
+
124
+ # Telegraf configuration
125
+ #
126
+ # @return [String]
127
+ def config
128
+ <<~CONFIG
129
+ [global_tags]
130
+ run_type = "${QA_RUN_TYPE}"
131
+ pipeline_id = "${CI_PIPELINE_ID}"
132
+ job_name = "${CI_JOB_NAME}"
133
+
134
+ [agent]
135
+ interval = "1s"
136
+ round_interval = true
137
+ metric_batch_size = 1000
138
+ metric_buffer_limit = 10000
139
+ collection_jitter = "0s"
140
+ flush_interval = "10s"
141
+ flush_jitter = "0s"
142
+ precision = ""
143
+ debug = true
144
+ logtarget = "file"
145
+ logfile = "#{LOG_DIR}/telegraf.log"
146
+ hostname = ""
147
+ omit_hostname = false
148
+
149
+ [[outputs.influxdb_v2]]
150
+ urls = ["${QA_INFLUXDB_URL}"]
151
+ token = "${QA_INFLUXDB_TOKEN}"
152
+ organization = "gitlab-qa"
153
+ bucket = "test-env-stats"
154
+
155
+ [[inputs.docker]]
156
+ endpoint = "unix:///var/run/docker.sock"
157
+ gather_services = false
158
+ container_names = []
159
+ source_tag = false
160
+ container_name_include = []
161
+ container_name_exclude = ["#{name}"]
162
+ timeout = "5s"
163
+ perdevice = false
164
+ perdevice_include = []
165
+ total = true
166
+ total_include = ["cpu", "blkio", "network"]
167
+ docker_label_include = []
168
+ docker_label_exclude = []
169
+ CONFIG
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'erb'
4
+ require 'date'
4
5
 
5
6
  module Gitlab
6
7
  module QA
@@ -24,7 +25,7 @@ module Gitlab
24
25
  end
25
26
 
26
27
  issue = gitlab.create_issue(
27
- title: "Test session report | #{pipeline}",
28
+ title: "#{Time.now.strftime('%Y-%m-%d')} Test session report | #{Runtime::Env.qa_run_type}",
28
29
  description: generate_description(tests),
29
30
  labels: ['Quality', 'QA', 'triage report', pipeline_name_label]
30
31
  )
@@ -122,7 +122,7 @@ module Gitlab
122
122
  "found:canary.staging.gitlab.com"
123
123
  when 'preprod'
124
124
  'found:pre.gitlab.com'
125
- when 'staging-orchestrated', 'nightly', QA::Runtime::Env.default_branch, 'staging-ref', 'release'
125
+ when 'nightly', QA::Runtime::Env.default_branch, 'staging-ref', 'release'
126
126
  "found:#{pipeline}"
127
127
  else
128
128
  raise "No `found:*` label for the `#{pipeline}` pipeline!"
@@ -70,8 +70,8 @@ module Gitlab
70
70
  <<~MKDOWN.strip
71
71
  ### Executions
72
72
 
73
- package-and-qa:
74
- <img src="https://dashboards.quality.gitlab.net/render/d-solo/cW0UMgv7k/spec-health?orgId=1&var-run_type=package-and-qa&var-name=#{formatted_title}&panelId=4&width=1000&height=500" />
73
+ All Environments:
74
+ <img src="https://dashboards.quality.gitlab.net/render/d-solo/cW0UMgv7k/spec-health?orgId=1&var-run_type=All&var-name=#{formatted_title}&panelId=4&width=1000&height=500" />
75
75
  MKDOWN
76
76
  end
77
77
 
@@ -62,16 +62,17 @@ module Gitlab
62
62
  args = remove_gitlab_qa_args(args)
63
63
 
64
64
  if args.size >= 1
65
+ scenario = Scenario.const_get(args.shift)
66
+
65
67
  load_omnibus_configurations
68
+ load_telegraf(scenario)
66
69
 
67
70
  begin
68
71
  @active_configurators.compact.each do |configurator|
69
72
  configurator.instance(skip_teardown: true)
70
73
  end
71
74
 
72
- Scenario
73
- .const_get(args.shift)
74
- .perform(*args)
75
+ scenario.perform(*args)
75
76
  ensure
76
77
  @active_configurators.compact.each(&:teardown)
77
78
  end
@@ -100,6 +101,18 @@ module Gitlab
100
101
  end.compact
101
102
  end
102
103
 
104
+ # Start telegraf agent for metrics collection
105
+ #
106
+ # Do not load when running against external instance
107
+ #
108
+ # @param [Class] scenario
109
+ # @return [void]
110
+ def self.load_telegraf(scenario)
111
+ return if scenario <= Scenario::Test::Instance::DeploymentBase || scenario == Scenario::Test::Instance::Any
112
+
113
+ @active_configurators << Component::Telegraf.new
114
+ end
115
+
103
116
  def self.load_omnibus_configurations
104
117
  # OmnibusConfiguration::Test => --test
105
118
  # OmnibusConfiguration::HelloThere => --hello_there
@@ -42,6 +42,7 @@ module Gitlab
42
42
  'QA_INFLUXDB_TOKEN' => :qa_influxdb_token,
43
43
  'QA_RUN_TYPE' => :qa_run_type,
44
44
  'QA_SKIP_PULL' => :qa_skip_pull,
45
+ 'QA_VALIDATE_RESOURCE_REUSE' => :qa_validate_resource_reuse,
45
46
  'GITLAB_API_BASE' => :api_base,
46
47
  'GITLAB_ADMIN_USERNAME' => :admin_username,
47
48
  'GITLAB_ADMIN_PASSWORD' => :admin_password,
@@ -142,16 +143,12 @@ module Gitlab
142
143
  end
143
144
 
144
145
  def variables
145
- vars = {}
146
-
147
- ENV_VARIABLES.each do |name, attribute|
146
+ ENV_VARIABLES.each_with_object({}) do |(name, attribute), vars|
148
147
  # Variables that are overridden in the environment take precedence
149
148
  # over the defaults specified by the QA runtime.
150
149
  value = env_var_name_if_defined(name) || send(attribute) # rubocop:disable GitlabSecurity/PublicSend
151
150
  vars[name] = value if value
152
151
  end
153
-
154
- vars
155
152
  end
156
153
 
157
154
  def debug?
@@ -179,15 +176,7 @@ module Gitlab
179
176
  end
180
177
 
181
178
  def pipeline_from_project_name
182
- if ci_project_name.to_s.start_with?('gitlab-qa')
183
- if env_var_value_if_defined('TOP_UPSTREAM_SOURCE_JOB').to_s.start_with?('https://ops.gitlab.net')
184
- 'staging-orchestrated'
185
- else
186
- QA::Runtime::Env.default_branch
187
- end
188
- else
189
- ci_project_name
190
- end
179
+ ci_project_name.to_s.start_with?('gitlab-qa') ? QA::Runtime::Env.default_branch : ci_project_name
191
180
  end
192
181
 
193
182
  def run_id
@@ -314,6 +303,27 @@ module Gitlab
314
303
  enabled?(env_var_value_if_defined('TEST_LICENSE_MODE'), default: false)
315
304
  end
316
305
 
306
+ def qa_export_test_metrics?
307
+ enabled?(env_var_value_if_defined('QA_EXPORT_TEST_METRICS'), default: true)
308
+ end
309
+
310
+ def qa_run_type
311
+ return env_var_value_if_defined('QA_RUN_TYPE') if env_var_value_valid?('QA_RUN_TYPE')
312
+
313
+ live_envs = %w[staging staging-canary staging-ref canary preprod production]
314
+ return unless live_envs.include?(ci_project_name)
315
+
316
+ test_subset = if env_var_value_if_defined('NO_ADMIN') == 'true'
317
+ 'sanity-no-admin'
318
+ elsif env_var_value_if_defined('SMOKE_ONLY') == 'true'
319
+ 'sanity'
320
+ else
321
+ 'full'
322
+ end
323
+
324
+ "#{ci_project_name}-#{test_subset}"
325
+ end
326
+
317
327
  private
318
328
 
319
329
  def enabled?(value, default: true)
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module QA
5
+ module Scenario
6
+ module Test
7
+ module Integration
8
+ class Integrations < Scenario::Template
9
+ def perform(release, *rspec_args)
10
+ Component::Gitlab.perform do |gitlab|
11
+ gitlab.release = QA::Release.new(release)
12
+ gitlab.network = 'test'
13
+ gitlab.name = 'gitlab-integrations'
14
+ gitlab.instance do
15
+ Component::Specs.perform do |specs|
16
+ rspec_args << '--' unless rspec_args.include?('--')
17
+ rspec_args << %w[--tag integrations]
18
+ specs.suite = 'Test::Instance::All'
19
+ specs.hostname = "qa-e2e-specs.#{gitlab.network}"
20
+ specs.release = gitlab.release
21
+ specs.network = gitlab.network
22
+ specs.args = [gitlab.address, *rspec_args]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '7.20.0'
5
+ VERSION = '7.22.1'
6
6
  end
7
7
  end
data/lib/gitlab/qa.rb CHANGED
@@ -74,6 +74,7 @@ module Gitlab
74
74
  autoload :Registry, 'gitlab/qa/scenario/test/integration/registry'
75
75
  autoload :RegistryTLS, 'gitlab/qa/scenario/test/integration/registry_tls'
76
76
  autoload :ServicePingDisabled, 'gitlab/qa/scenario/test/integration/service_ping_disabled'
77
+ autoload :Integrations, 'gitlab/qa/scenario/test/integration/integrations'
77
78
  end
78
79
 
79
80
  module Sanity
@@ -99,6 +100,7 @@ module Gitlab
99
100
  autoload :MailHog, 'gitlab/qa/component/mail_hog'
100
101
  autoload :Jira, 'gitlab/qa/component/jira'
101
102
  autoload :PostgreSQL, 'gitlab/qa/component/postgresql'
103
+ autoload :Telegraf, 'gitlab/qa/component/telegraf'
102
104
  end
103
105
 
104
106
  module Support
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-qa
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.20.0
4
+ version: 7.22.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab Quality
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-25 00:00:00.000000000 Z
11
+ date: 2022-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -228,7 +228,6 @@ files:
228
228
  - docs/release_process.md
229
229
  - docs/run_qa_against_gdk.md
230
230
  - docs/running_against_remote_grid.md
231
- - docs/running_specific_orchestrated_tests.md
232
231
  - docs/trainings.md
233
232
  - docs/waits.md
234
233
  - docs/what_tests_can_be_run.md
@@ -256,6 +255,7 @@ files:
256
255
  - lib/gitlab/qa/component/specs.rb
257
256
  - lib/gitlab/qa/component/staging.rb
258
257
  - lib/gitlab/qa/component/staging_ref.rb
258
+ - lib/gitlab/qa/component/telegraf.rb
259
259
  - lib/gitlab/qa/docker/command.rb
260
260
  - lib/gitlab/qa/docker/engine.rb
261
261
  - lib/gitlab/qa/docker/shellout.rb
@@ -315,6 +315,7 @@ files:
315
315
  - lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb
316
316
  - lib/gitlab/qa/scenario/test/integration/group_saml.rb
317
317
  - lib/gitlab/qa/scenario/test/integration/instance_saml.rb
318
+ - lib/gitlab/qa/scenario/test/integration/integrations.rb
318
319
  - lib/gitlab/qa/scenario/test/integration/jira.rb
319
320
  - lib/gitlab/qa/scenario/test/integration/kubernetes.rb
320
321
  - lib/gitlab/qa/scenario/test/integration/ldap.rb
@@ -1,11 +0,0 @@
1
- # Running specific orchestrated tests
2
-
3
- ## Maven artifact spec
4
-
5
- The [maven repository spec](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/specs/features/ee/browser_ui/5_package/maven_repository_spec.rb) creates a Maven artifact and links it to a GitLab project. The artifact is created within a [Maven docker image](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/qa/service/docker_run/maven.rb#L8).
6
-
7
- Using `gitlab-qa` to run these tests reduces the likelihood of network errors between the maven container and GitLab instance.
8
-
9
- To run this with `gitlab-qa` you can use the `Test::Instance::Image` that is needed for your test. For example:
10
-
11
- `gitlab-qa Test::Instance::Image registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:2cb9a85d2beadd51b926eaddb05005403bee0013 -- --tag orchestrated qa/specs/features/ee/browser_ui/5_package/maven_repository_spec.rb` - runs the test against a specific Omnibus GitLab image that was built through `package-and-qa`.