gitlab-qa 14.11.0 → 14.12.0
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 +4 -4
- data/.gitlab-ci.yml +2 -2
- data/Gemfile.lock +1 -1
- data/docs/what_tests_can_be_run.md +1 -1
- data/lib/gitlab/qa/component/ai_gateway.rb +71 -1
- data/lib/gitlab/qa/component/gitlab.rb +1 -0
- data/lib/gitlab/qa/scenario/test/omnibus/update_from_previous.rb +24 -6
- 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: bd465ad052ddf27bfec3d32c3223690dc815b71b805443619f01ee2f59a5e598
|
|
4
|
+
data.tar.gz: a8624cdb6d986a4db3cb951202e4050906023986e83a5876c30806db0ee4be30
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5e4e1b15180da4d39924afaa31e26ddd7e95b89c69a05f5602ccdc762428091754d97181791824c9c184a3d862bbdb17e0fd7a6579703d5ef5421c96d190bfbc
|
|
7
|
+
data.tar.gz: 63ff9aa5f91a6be51968f96322ff607d3769b4b269e71ac7c37712e8526cd8f414b1e25035523d64512819f0ab1cfb8dc1421a14fafcc9373b27853e79ade60d
|
data/.gitlab-ci.yml
CHANGED
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
- vendor/ruby
|
|
9
9
|
|
|
10
10
|
include:
|
|
11
|
-
- component:
|
|
11
|
+
- component: ${CI_SERVER_FQDN}/gitlab-org/components/danger-review/danger-review@1.4.0
|
|
12
12
|
inputs:
|
|
13
13
|
job_image: "${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}"
|
|
14
|
+
job_stage: "check"
|
|
14
15
|
- component: gitlab.com/gitlab-org/components/gem-release/gem-release@~latest
|
|
15
16
|
|
|
16
17
|
stages:
|
|
@@ -98,7 +99,6 @@ cache-gems:
|
|
|
98
99
|
- Gemfile.lock
|
|
99
100
|
|
|
100
101
|
danger-review:
|
|
101
|
-
stage: check
|
|
102
102
|
needs:
|
|
103
103
|
- job: cache-gems
|
|
104
104
|
optional: true
|
data/Gemfile.lock
CHANGED
|
@@ -86,7 +86,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa
|
|
|
86
86
|
| `QA_INFLUXDB_TOKEN` |- | InfluxDB token for test metrics reporting | No|
|
|
87
87
|
| `QA_RUN_TYPE` |- | QA run type like `staging-full`, `canary`, `production` etc. Used in test metrics reporting | No|
|
|
88
88
|
| `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 |
|
|
89
|
-
| `QA_USE_PUBLIC_IP_API` | `false` | When performing Instance tests against a remote/pre-existing instance, use an API to detect the public API for requests coming from gitlab-qa. Used by tests that exercise IP-address restrictions and similar
|
|
89
|
+
| `QA_USE_PUBLIC_IP_API` | `false` | When performing Instance tests against a remote/pre-existing instance, use an API to detect the public API for requests coming from gitlab-qa. Used by tests that exercise IP-address restrictions and similar | No |
|
|
90
90
|
| `QA_GITHUB_USERNAME` |- | Username for authenticating with GitHub. | No|
|
|
91
91
|
| `QA_GITHUB_PASSWORD` |- | Password for authenticating with GitHub. | No|
|
|
92
92
|
| `GITLAB_QA_LOOP_RUNNER_MINUTES` | `1` | Minutes to run and repeat a spec while using the '--loop' option; default value is 1 minute. | No|
|
|
@@ -8,6 +8,74 @@ module Gitlab
|
|
|
8
8
|
DOCKER_IMAGE_TAG = 'latest'
|
|
9
9
|
LOG_DIR = '/var/log'
|
|
10
10
|
|
|
11
|
+
# Test signing key to enable direct connection code completions
|
|
12
|
+
# https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/97f54f4b7e43258a39bba7f29f38fe44bd316ce5/example.env#L79
|
|
13
|
+
TEST_SIGNING_KEY =
|
|
14
|
+
<<~SIGNING_KEY
|
|
15
|
+
-----BEGIN PRIVATE KEY-----
|
|
16
|
+
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD35X6SQq7VuIV8
|
|
17
|
+
jRNta9yfQJzVLqfYOFwSqismmvR1/2y/pO7HWsXo1HhkQdzF7U1zJLh8b0PiSkDE
|
|
18
|
+
dpUzkt5b4mPIit7khx7/wMi+t+gi1dpP+gTXxqOB8A/UzvQxBEKhizoGw/hG7vzT
|
|
19
|
+
MYqJRO1xHCYsMNU2TfWuoGR/7RXIidXzXmEShZ6bFeEWqupV7D0X6n8WVMd+NrZZ
|
|
20
|
+
lCNP0O67kCZGpABHcQ/uDUcRhyHYFkGHoSwp7KS2416PXMiRs01VRUG7fnOkgo4C
|
|
21
|
+
zyPWfuzSMjkKPm9gr9P0qYGsNrOBmV0guyLg4JWcVhDvkuh32r/kHrwxwUDYSLyI
|
|
22
|
+
GfAKKmZDAgMBAAECggEAKLfCEdVw0PCywayNKQdIgRf51W0JFhOGfBewvXHs/ty/
|
|
23
|
+
nhLsmEN+sn8DxLlUwWX4YhYBVN8UcBJGOn7yhDrML0eA9asUcBu0VHSer0TslPGP
|
|
24
|
+
dFzazXPL3kdHh8BJN9aSozoyg8ijT/NoBRXkGCasNvdVWyOCQfM4NutoK+MOFZbL
|
|
25
|
+
krtGPWfjTPByaZnV1PDJq95wz6LQeSdNwZLABE4YIrBxg0V1zu1gb0paltHZjPaM
|
|
26
|
+
68rm6Hp78CqI/5v9/RqQaso8aYVdjBaEkEI40CgKZY8Jm04NE4EcQM4Z4IYFc8I/
|
|
27
|
+
Ewj0giQIkZrGuucOA9S8TNqDjerv+8NoLMRCRcTk8QKBgQD9nHZGdW+2+IjShTal
|
|
28
|
+
EzjHH37APQKXYi0R9IESdzRnkUrL/8Rnxe5f7VxmDXJys0+IGo+8JoqGRUWJD8WZ
|
|
29
|
+
oBNW8oqJ4OH/dH07v2W0a0L0Z0Fcq6lv6tFcq1inSLPlk6EW3h4vTlrknuQ6QaKq
|
|
30
|
+
74SksBB4dCGDLlOaL8jldg9YVwKBgQD6O0CciiL3xVdnx4cGHDEjs9UU10z0EeVs
|
|
31
|
+
0gNxdAdkQEdgj9wI1yzNywFXtI+UA26j7207vYcU0hQ029roJN5ogTOkcCuf9WPQ
|
|
32
|
+
RV/+BQhiEJGYmZF8KlWiCB1HTxvc3p04EmIsp1N6yuqoE0jUFIS3A4GYYHPDZwDa
|
|
33
|
+
G8Y+W68d9QKBgQC7aFxqcqusDPqmfrRDxfGGC7sRecQpc+4UP5cFuzrpcY9RMl7D
|
|
34
|
+
xJsDHhbSfwtcwS57SA2BHwXsdNIOl64QeR7xeGdxvdGjgURt22DfsweWLZs6TMv3
|
|
35
|
+
nRE7Jo9rhqkRdEds65RopsE6AkRq3EfFgxuEy2pQaJi/JIO5A6i0D8sFHwKBgQCI
|
|
36
|
+
rtDuMO5E1QCXaX+xsLiOve5IggpAz324YUcMM8rN0earMimIkrCggKDtHW3H9c/7
|
|
37
|
+
sA7EsRQWJWJwNR9v6qOqBdkFm1fY+htZamuyv2EC3/YHmurDHgTEixYjG20mylqq
|
|
38
|
+
hDAoIAYTbr+aq13+qm6L4VhquVTCiYMHoGA7M62F+QKBgQCfTv5XVu+bEEBKyTkf
|
|
39
|
+
oVWjaLbO99zrgRYmZ9zhiRtlYFKefQ4kKxr+SRcia2dxQiNVPh5qUkX6ukvgCEVl
|
|
40
|
+
GoFTlopsX/CbilNarkwa/nvgQQeZAlrFpONifrtfZffV2Cs6wcwYAL8W5qFtl6iy
|
|
41
|
+
ZpLGJZdEWAPTxB6ppnDC75/KOg==
|
|
42
|
+
-----END PRIVATE KEY-----
|
|
43
|
+
SIGNING_KEY
|
|
44
|
+
|
|
45
|
+
# Test validation key to enable direct connection code completions
|
|
46
|
+
# https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/97f54f4b7e43258a39bba7f29f38fe44bd316ce5/example.env#L79
|
|
47
|
+
TEST_VALIDATION_KEY =
|
|
48
|
+
<<~VALIDATION_KEY
|
|
49
|
+
-----BEGIN PRIVATE KEY-----
|
|
50
|
+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOAJNEB8EoyCAk
|
|
51
|
+
acSevXg5md0/JJGxBrHpIHqDuSf5FEENU0eGCc3PLZh5IjFcijGThMy0r/OMQn/n
|
|
52
|
+
/KAVCLlyPBaLEGsxqXJcW2CmNM24A3zyR4b7ghB+POKJY9lD2JoUWe57+B0IgZuz
|
|
53
|
+
PQbwRvuO7ULsw4xgGoLcoiscYMzKEWuFKDrteim+2vjCif5DDohKZQc3Ic8dwOtL
|
|
54
|
+
2C6+dV2TdyK0JPD7Kc1ONnH3S/VWJ8W5DDO1q5MrwJ+CQMaofHRqpbZrc66i5v2y
|
|
55
|
+
6/ooB0W14D1Qy4GmMIkLnkdP9UcYRHL7cVDv0D+bHs0xIyTXgbZaL78VFUyqeq23
|
|
56
|
+
qR4opOmFAgMBAAECggEABiJ5lZFkN4ew1VoaUzPclwfgUSy7SKSkuwbkPx9OHm/I
|
|
57
|
+
+XxHvqkfaj0MXlxzUIiDrhtKpqgwE4w4wjrWtZRQmXif9JI6RFIB0thHH4v7rbAv
|
|
58
|
+
kgjT7zzSAEBl6qYrkTFWcqa0Sxgkx90RkEaP+gB90KV7fxDaZv5DHrjsRGhpkNbi
|
|
59
|
+
8qtJOrvY6we6nx/YaD3iK69qQk6ktRg1AYUDH3xjBIIzo6brqlL2NJ+Q4VerrHFU
|
|
60
|
+
2EhTXto+4Y51Qjpas5B7DHmEhghZtYsMceuqFNvDQgGg1IsBPB4icTIREzHJ0rj3
|
|
61
|
+
Xgh5DMJGYb0p7Ktm74jciTdFIHeDMUCLoxxSPTZavQKBgQDs1njL0VR1hZKiGihO
|
|
62
|
+
fP0L3BwNL0H6uqKOlPP+DwdnNv7Q99xMKe9qcGWeiFXrLDkVMkd0M2LfU4SH5XUO
|
|
63
|
+
mt0YSC7Fn/pwozbk61k9+oEnL9cwDpwFwr46ccY6hmp3iihLTrgDuAi0CMSurZrC
|
|
64
|
+
mnqOOAxuSq6D7a/yhNKdEvckqwKBgQDeq2tIXlWVPXBY6CgIhUakq0oqHn35lhx4
|
|
65
|
+
CJuc1cujm1C68/UiZvxRK1LLAcFlDLl7+lnCSKnNn6fwK+jCsEsGT8ZuCJ2FznGH
|
|
66
|
+
wN6B3qrgEsB+FgC6qLir/o83E8I0tSOITaWHHvIc/l1PuXHJbwfCd2yB1sdeshID
|
|
67
|
+
x9o38/pKjwKBgH1YQRQ11IpiSCnMyDpKAi7Nrnb35OaK8k+d28hBMfzZaWE1XP1e
|
|
68
|
+
UFy34cBWjYpqnEdwlcqVC6YAcKrvsNUq9wrL4R0svwHwD7R2LoQT2VjhA/VmNgMC
|
|
69
|
+
f2U1I+GDlENx9kNtBQzK0Khf36BHNxn5YhV06ndQxS4DlNQ4obMJ/40DAoGBAIWm
|
|
70
|
+
DfaZ6HRzNAOpFJ5IoGYmCZXOR36PAvdo8z3ndRr2FjagRvonJjrx7fe7TgEA6jPn
|
|
71
|
+
yAg85O5ubbZSJJr2hZF8QHW65hFyH+KDeQoqRBXKK4+CVV2z92QEnqFIUsCgGHuv
|
|
72
|
+
XzMC9/8/DXLUs99brSSj2ZT0/SVxbC6ovennnssxAoGALtm2AUBMgsU6b9B+Fp2L
|
|
73
|
+
ZBQSwkyd3bOD7sFJHhbmiRE/ag2lsaE+dNg9H42fhOV0MXfPkEBWCIaGt931T5+q
|
|
74
|
+
FVATlTTDAx2CRmJCOyXkQ6mGBFTkQPqDwmWvwjbK9B5r0SnGfCpk4uEYWoYYsX05
|
|
75
|
+
t14Huwf9VVUTCfEi0+wWcko=
|
|
76
|
+
-----END PRIVATE KEY-----
|
|
77
|
+
VALIDATION_KEY
|
|
78
|
+
|
|
11
79
|
def name
|
|
12
80
|
@name ||= 'ai-gateway'
|
|
13
81
|
end
|
|
@@ -26,7 +94,9 @@ module Gitlab
|
|
|
26
94
|
'AIGW_CUSTOMER_PORTAL_URL' => Runtime::Env.customer_portal_url,
|
|
27
95
|
'AIGW_MOCK_MODEL_RESPONSES' => true,
|
|
28
96
|
'AIGW_LOGGING__LEVEL' => 'debug',
|
|
29
|
-
'AIGW_LOGGING__TO_FILE' => "..#{LOG_DIR}/modelgateway_debug.log"
|
|
97
|
+
'AIGW_LOGGING__TO_FILE' => "..#{LOG_DIR}/modelgateway_debug.log",
|
|
98
|
+
'AIGW_SELF_SIGNED_JWT__SIGNING_KEY' => TEST_SIGNING_KEY,
|
|
99
|
+
'AIGW_SELF_SIGNED_JWT__VALIDATION_KEY' => TEST_VALIDATION_KEY
|
|
30
100
|
}
|
|
31
101
|
end
|
|
32
102
|
end
|
|
@@ -9,7 +9,7 @@ module Gitlab
|
|
|
9
9
|
using Rainbow
|
|
10
10
|
|
|
11
11
|
# Test update from N - 1 (major|minor|patch) version to current release
|
|
12
|
-
# Run smoke test suite on previous release to populate some data in database before update
|
|
12
|
+
# Run health check (or smoke if below 17.1.0) test suite on previous release to populate some data in database before update
|
|
13
13
|
#
|
|
14
14
|
# @example
|
|
15
15
|
# perform(gitlab-ee:dev-tag, 15.3.0-pre, major)
|
|
@@ -24,6 +24,7 @@ module Gitlab
|
|
|
24
24
|
def perform(release, current_version, semver_component, from_edition = nil, *rspec_args)
|
|
25
25
|
# When from_edition isn't actually passed but RSpec args arg passed with `-- rspec_args...`,
|
|
26
26
|
# from_edition is wrongly set to `--`, so we fix that here.
|
|
27
|
+
|
|
27
28
|
if from_edition == "--"
|
|
28
29
|
rspec_args.prepend('--')
|
|
29
30
|
from_edition = nil
|
|
@@ -46,15 +47,31 @@ module Gitlab
|
|
|
46
47
|
|
|
47
48
|
attr_reader :current_release, :upgrade_path
|
|
48
49
|
|
|
50
|
+
# Extract version number from a string, for example: "gitlab/gitlab-ee:15.11.13-ee.0"
|
|
51
|
+
#
|
|
52
|
+
# @param [String] version_string version string to extract from
|
|
53
|
+
# @return [String] extracted version number
|
|
54
|
+
def extract_version(version_string)
|
|
55
|
+
QA::Release.new(version_string).tag.split('-').first
|
|
56
|
+
end
|
|
57
|
+
|
|
49
58
|
# Perform update
|
|
50
59
|
#
|
|
51
60
|
# @param [Array] rspec_args
|
|
52
61
|
# @return [void]
|
|
62
|
+
# rubocop:disable Metrics/AbcSize
|
|
53
63
|
def update(rspec_args)
|
|
54
64
|
Docker::Volumes.new.with_temporary_volumes do |volumes|
|
|
65
|
+
first_release_version = extract_version(upgrade_path.first.release)
|
|
66
|
+
seeding_suite_args = if Gem::Version.new(first_release_version) < Gem::Version.new("17.1.0")
|
|
67
|
+
["--", "--tag", "smoke"]
|
|
68
|
+
else
|
|
69
|
+
["--", "--tag", "health_check"]
|
|
70
|
+
end
|
|
71
|
+
|
|
55
72
|
# deploy first release in upgrade path and run specs to populate db
|
|
56
73
|
Runtime::Logger.info("Running the first release in upgrade path: #{upgrade_path.first}")
|
|
57
|
-
run_gitlab(upgrade_path.first, volumes,
|
|
74
|
+
run_gitlab(upgrade_path.first, volumes, seeding_suite_args)
|
|
58
75
|
|
|
59
76
|
# deploy releases in upgrade path
|
|
60
77
|
upgrade_path[1..].each do |release|
|
|
@@ -67,6 +84,7 @@ module Gitlab
|
|
|
67
84
|
run_gitlab(current_release, volumes, rspec_args, skip_setup: true)
|
|
68
85
|
end
|
|
69
86
|
end
|
|
87
|
+
# rubocop:enable Metrics/AbcSize
|
|
70
88
|
|
|
71
89
|
# Deploy gitlab instance and optionally run specs
|
|
72
90
|
#
|
|
@@ -100,8 +118,8 @@ module Gitlab
|
|
|
100
118
|
# @param [Array] rspec_args
|
|
101
119
|
# @return [void]
|
|
102
120
|
def run_specs(gitlab, release, rspec_args) # rubocop:disable Metrics/AbcSize
|
|
103
|
-
Runtime::Logger.info("Running
|
|
104
|
-
Runtime::Logger.info("Running
|
|
121
|
+
Runtime::Logger.info("Running test suite to verify update and seed data in environment") unless upgrade_path.first != release
|
|
122
|
+
Runtime::Logger.info("Running test suite to verify update") unless current_release != release
|
|
105
123
|
|
|
106
124
|
Component::Specs.perform do |specs|
|
|
107
125
|
specs.release = release
|
|
@@ -119,11 +137,11 @@ module Gitlab
|
|
|
119
137
|
end
|
|
120
138
|
rescue Support::ShellCommand::StatusError => e
|
|
121
139
|
if release == current_release # only fail on current release
|
|
122
|
-
Runtime::Logger.error("Failed to run
|
|
140
|
+
Runtime::Logger.error("Failed to run health check after final upgrade to release '#{release}'")
|
|
123
141
|
raise e
|
|
124
142
|
end
|
|
125
143
|
|
|
126
|
-
Runtime::Logger.warn("
|
|
144
|
+
Runtime::Logger.warn("Health check verification for release '#{gitlab.release}' finished with errors!")
|
|
127
145
|
end
|
|
128
146
|
|
|
129
147
|
# Run specs on first release to populate database and release being tested
|
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: 14.
|
|
4
|
+
version: 14.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitLab Quality
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-07-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|