gitlab-qa 10.3.0 → 10.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab/merge_request_templates/Release.md +1 -1
- data/Gemfile.lock +1 -1
- data/docs/what_tests_can_be_run.md +5 -2
- data/lib/gitlab/qa/component/gitaly.rb +5 -3
- data/lib/gitlab/qa/component/praefect.rb +39 -29
- data/lib/gitlab/qa/component/selenoid.rb +5 -6
- data/lib/gitlab/qa/runtime/env.rb +3 -4
- data/lib/gitlab/qa/runtime/omnibus_configurations/decomposition_single_db.rb +1 -2
- data/lib/gitlab/qa/scenario/test/integration/mtls.rb +20 -5
- data/lib/gitlab/qa/scenario/test/integration/praefect.rb +16 -8
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d05691dfdac6eb77440c9440dc824c50fdb6e68530c23d53d1480eab92b17316
|
4
|
+
data.tar.gz: b76dbe09cea7fd9ca5092eaa024d0d9f69b33f35362f741145c4b576d486bf46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bec6faa9d2f322f523ddd75ccf29497fadbb723a04ad4b545e7bb0a277e9e6e430b586eb2d21d3371326e6c7b1c1257dfc497da0e72f4cf1c27de9ff4705e5f8
|
7
|
+
data.tar.gz: bef3adb4164e0c9b9e756358cea2dbbf9b1802ea7410764291a109999540a151e666cd7ff84799ef0e2c91cc1a169ca2ea6b2871e732784c67e0eeaefd27037d
|
@@ -34,7 +34,7 @@ with the latest commit from https://gitlab.com/gitlab-org/gitlab-qa/commits/mast
|
|
34
34
|
|
35
35
|
- Checklist after gitlab-qa version has been released by the post merge pipeline:
|
36
36
|
- [ ] In the pipeline-common project, [update the GITLAB_QA_VERSION](https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/base.gitlab-ci.yml) and [create a release](https://gitlab.com/gitlab-org/quality/pipeline-common#release-process).
|
37
|
-
- [ ] In the GitLab project, update the ref for pipeline-common
|
37
|
+
- [ ] In the GitLab project, update the ref for pipeline-common in [qa-common](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/qa-common/main.gitlab-ci.yml) and [review-apps](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/review-apps/qa.gitlab-ci.yml).
|
38
38
|
- [ ] Unless already done by [renovate-gitlab-bot](https://gitlab.com/dashboard/merge_requests?scope=all&state=opened&author_username=gitlab-dependency-update-bot&label_name[]=Quality), or if you need it sooner, in the GitLab project, [update the gitlab-qa gem version](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/Gemfile) and [`Gemfile.lock`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/Gemfile.lock) (for an example, see: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117054).
|
39
39
|
|
40
40
|
/label ~Quality ~"type::maintenance" ~"maintenance::dependency"
|
data/Gemfile.lock
CHANGED
@@ -1072,7 +1072,10 @@ gitlab-qa Test::Integration::RegistryTLS EE --omnibus-config object_storage_aws
|
|
1072
1072
|
|
1073
1073
|
### `Test::Instance::Image EE --omnibus-config decomposition_single_db`
|
1074
1074
|
|
1075
|
-
|
1075
|
+
**Note: The default Omnibus config is using a single database
|
1076
|
+
with [two database connections](https://docs.gitlab.com/omnibus/settings/database.html#configuring-multiple-database-connections)**
|
1077
|
+
|
1078
|
+
This scenario is to run tests against a GitLab instance using a single database with only one `main` connection:
|
1076
1079
|
|
1077
1080
|
```ruby
|
1078
1081
|
gitlab-qa Test::Instance::Image EE --omnibus-config decomposition_single_db
|
@@ -1080,7 +1083,7 @@ gitlab-qa Test::Instance::Image EE --omnibus-config decomposition_single_db
|
|
1080
1083
|
|
1081
1084
|
### `Test::Instance::Image EE --omnibus-config decomposition_multiple_db`
|
1082
1085
|
|
1083
|
-
This scenario is to run tests against a GitLab instance
|
1086
|
+
This scenario is to run tests against a GitLab instance using [multiple databases](https://docs.gitlab.com/ee/administration/postgresql/multiple_databases.html):
|
1084
1087
|
|
1085
1088
|
```ruby
|
1086
1089
|
gitlab-qa Test::Instance::Image EE --omnibus-config decomposition_multiple_db
|
@@ -64,9 +64,11 @@ module Gitlab
|
|
64
64
|
praefect['enable'] = false;
|
65
65
|
prometheus['enable'] = true;
|
66
66
|
gitaly['enable'] = true;
|
67
|
-
gitaly['
|
68
|
-
|
69
|
-
|
67
|
+
gitaly['configuration'] = {
|
68
|
+
'listen_addr': '0.0.0.0:#{gitaly_port}',
|
69
|
+
'prometheus_listen_addr': '0.0.0.0:9236',
|
70
|
+
'auth_token': 'PRAEFECT_INTERNAL_TOKEN'
|
71
|
+
}
|
70
72
|
gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
|
71
73
|
gitlab_rails['internal_api_url'] = 'http://#{cluster_config.gitlab_name}.#{cluster_config.network}';
|
72
74
|
git_data_dirs({
|
@@ -60,36 +60,46 @@ module Gitlab
|
|
60
60
|
gitaly['enable'] = false;
|
61
61
|
prometheus['enable'] = true;
|
62
62
|
praefect['enable'] = true;
|
63
|
-
praefect['
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
'
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
'
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
63
|
+
praefect['configuration'] = {
|
64
|
+
listen_addr: '0.0.0.0:#{cluster_config.praefect_port}',
|
65
|
+
prometheus_listen_addr: '0.0.0.0:9652',
|
66
|
+
auth: {
|
67
|
+
token: 'PRAEFECT_EXTERNAL_TOKEN'
|
68
|
+
},
|
69
|
+
reconciliation: {
|
70
|
+
scheduling_interval: '10s'
|
71
|
+
},
|
72
|
+
database: {
|
73
|
+
host: '#{cluster_config.database_node_addr}',
|
74
|
+
port: #{cluster_config.database_port},
|
75
|
+
user: 'postgres',
|
76
|
+
password: 'SQL_PASSWORD',
|
77
|
+
dbname: 'praefect_production',
|
78
|
+
sslmode: 'disable'
|
79
|
+
},
|
80
|
+
virtual_storage: [
|
81
|
+
{
|
82
|
+
name: 'default',
|
83
|
+
node: [
|
84
|
+
{
|
85
|
+
'storage': '#{cluster_config.primary_node_name}',
|
86
|
+
'address': 'tcp://#{cluster_config.primary_node_addr}:#{cluster_config.primary_node_port}',
|
87
|
+
'token': 'PRAEFECT_INTERNAL_TOKEN'
|
88
|
+
},
|
89
|
+
{
|
90
|
+
'storage': '#{cluster_config.secondary_node_name}',
|
91
|
+
'address': 'tcp://#{cluster_config.secondary_node_addr}:#{cluster_config.secondary_node_port}',
|
92
|
+
'token': 'PRAEFECT_INTERNAL_TOKEN'
|
93
|
+
},
|
94
|
+
{
|
95
|
+
'storage': '#{cluster_config.tertiary_node_name}',
|
96
|
+
'address': 'tcp://#{cluster_config.tertiary_node_addr}:#{cluster_config.tertiary_node_port}',
|
97
|
+
'token': 'PRAEFECT_INTERNAL_TOKEN'
|
98
|
+
}
|
99
|
+
],
|
90
100
|
}
|
91
|
-
|
92
|
-
}
|
101
|
+
]
|
102
|
+
}
|
93
103
|
OMNIBUS
|
94
104
|
end
|
95
105
|
end
|
@@ -31,8 +31,6 @@ module Gitlab
|
|
31
31
|
set_command_args(command)
|
32
32
|
set_volumes(command)
|
33
33
|
end
|
34
|
-
|
35
|
-
wait_until_ready
|
36
34
|
end
|
37
35
|
|
38
36
|
def wait_until_ready(max_attempts: 20, wait: 2)
|
@@ -50,14 +48,15 @@ module Gitlab
|
|
50
48
|
private
|
51
49
|
|
52
50
|
def grid_healthy?
|
53
|
-
HTTP.get('http://
|
54
|
-
rescue HTTP::ConnectionError =>
|
51
|
+
HTTP.get('http://docker:4444/ping').status&.success?
|
52
|
+
rescue HTTP::ConnectionError => e
|
53
|
+
Runtime::Logger.debug(e)
|
55
54
|
false
|
56
55
|
end
|
57
56
|
|
58
57
|
def pull_images
|
59
|
-
docker.pull(image: "selenoid/chrome", tag: Runtime::Env.browser_version) if Runtime::Env.browser ==
|
60
|
-
docker.pull(image: "selenoid/video-recorder", tag: "latest-release")
|
58
|
+
docker.pull(image: "selenoid/chrome", tag: Runtime::Env.browser_version) if Runtime::Env.browser == 'chrome' && !Runtime::Env.mobile_layout?
|
59
|
+
docker.pull(image: "selenoid/video-recorder", tag: "latest-release") if Runtime::Env.record_video
|
61
60
|
end
|
62
61
|
|
63
62
|
# Set custom run command arguments
|
@@ -22,6 +22,9 @@ module Gitlab
|
|
22
22
|
'QA_REMOTE_MOBILE_DEVICE_NAME' => :remote_mobile_device_name,
|
23
23
|
'QA_REMOTE_TUNNEL_ID' => :remote_tunnel_id,
|
24
24
|
'QA_BROWSER' => :browser,
|
25
|
+
'QA_BROWSER_VERSION' => :browser_version,
|
26
|
+
'QA_RECORD_VIDEO' => :record_video,
|
27
|
+
'QA_LAYOUT' => :layout,
|
25
28
|
'QA_ADDITIONAL_REPOSITORY_STORAGE' => :qa_additional_repository_storage,
|
26
29
|
'QA_PRAEFECT_REPOSITORY_STORAGE' => :qa_praefect_repository_storage,
|
27
30
|
'QA_GITALY_NON_CLUSTER_STORAGE' => :qa_gitaly_non_cluster_storage,
|
@@ -364,10 +367,6 @@ module Gitlab
|
|
364
367
|
env_var_value_if_defined('QA_LAYOUT')&.match?(/tablet|phone/i)
|
365
368
|
end
|
366
369
|
|
367
|
-
def browser_version
|
368
|
-
env_var_value_if_defined('QA_BROWSER_VERSION')
|
369
|
-
end
|
370
|
-
|
371
370
|
def qa_run_type
|
372
371
|
return env_var_value_if_defined('QA_RUN_TYPE') if env_var_value_valid?('QA_RUN_TYPE')
|
373
372
|
|
@@ -8,8 +8,7 @@ module Gitlab
|
|
8
8
|
def configuration
|
9
9
|
<<~OMNIBUS
|
10
10
|
gitlab_rails['databases']['main']['enable'] = true
|
11
|
-
gitlab_rails['databases']['ci']['enable'] =
|
12
|
-
gitlab_rails['databases']['ci']['db_database'] = 'gitlabhq_production'
|
11
|
+
gitlab_rails['databases']['ci']['enable'] = false
|
13
12
|
OMNIBUS
|
14
13
|
end
|
15
14
|
end
|
@@ -87,10 +87,26 @@ module Gitlab
|
|
87
87
|
|
88
88
|
def gitaly_omnibus
|
89
89
|
<<~OMNIBUS
|
90
|
-
gitaly['
|
91
|
-
|
92
|
-
|
93
|
-
|
90
|
+
gitaly['configuration'] = {
|
91
|
+
auth: {
|
92
|
+
token: 'abc123secret',
|
93
|
+
},
|
94
|
+
tls_listen_addr: '0.0.0.0:9999',
|
95
|
+
tls: {
|
96
|
+
certificate_path: '/etc/gitlab/ssl/gitaly.test.crt',
|
97
|
+
key_path: '/etc/gitlab/ssl/gitaly.test.key',
|
98
|
+
},
|
99
|
+
storage: [
|
100
|
+
{
|
101
|
+
name: 'default',
|
102
|
+
path: '/var/opt/gitlab/git-data/repositories',
|
103
|
+
},
|
104
|
+
{
|
105
|
+
name: 'storage1',
|
106
|
+
path: '/mnt/gitlab/git-data/repositories',
|
107
|
+
},
|
108
|
+
],
|
109
|
+
};
|
94
110
|
postgresql['enable'] = false;
|
95
111
|
redis['enable'] = false;
|
96
112
|
nginx['enable'] = false;
|
@@ -105,7 +121,6 @@ module Gitlab
|
|
105
121
|
gitlab_rails['rake_cache_clear'] = false;
|
106
122
|
gitlab_rails['auto_migrate'] = false;
|
107
123
|
|
108
|
-
gitaly['auth_token'] = 'abc123secret';
|
109
124
|
gitlab_shell['secret_token'] = 'shellsecret';
|
110
125
|
|
111
126
|
gitlab_rails['internal_api_url'] = 'https://#{@gitlab_name}.#{@network}';
|
@@ -30,14 +30,22 @@ module Gitlab
|
|
30
30
|
}
|
31
31
|
});
|
32
32
|
gitaly['enable'] = true;
|
33
|
-
gitaly['
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
33
|
+
gitaly['configuration'] = {
|
34
|
+
auth: {
|
35
|
+
token: 'secret-token',
|
36
|
+
},
|
37
|
+
listen_addr: '0.0.0.0:8075',
|
38
|
+
tls: {
|
39
|
+
certificate_path: '/etc/gitlab/ssl/gitaly.test.crt',
|
40
|
+
key_path: '/etc/gitlab/ssl/gitaly.test.key',
|
41
|
+
},
|
42
|
+
storage: [
|
43
|
+
{
|
44
|
+
name: 'gitaly',
|
45
|
+
path: '/var/opt/gitlab/git-data/repositories',
|
46
|
+
},
|
47
|
+
],
|
48
|
+
};
|
41
49
|
gitlab_rails['gitaly_token'] = 'secret-token';
|
42
50
|
gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
|
43
51
|
prometheus['scrape_configs'] = [
|
data/lib/gitlab/qa/version.rb
CHANGED
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: 10.
|
4
|
+
version: 10.4.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: 2023-
|
11
|
+
date: 2023-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|