gitlab-qa 14.11.0 → 14.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f1cb43d060925e3dd20830d8412563a94fca6fb8ad0636de7da5176b984c4e5
4
- data.tar.gz: c6096e3712816f0c5667208d219f7e25ce125a869dc4c8b689e89e7c8c85242e
3
+ metadata.gz: f22d815fd3ac524d090783dfbd902ff3c88aab3e4429cddac39168264524210d
4
+ data.tar.gz: 0d68738dc9dd3c5ef7350a5243221aa161919b9e8fc4e4296253124c137189c1
5
5
  SHA512:
6
- metadata.gz: 526945385fb2c815c5cc5b7d17b7327523f099f0f08d123185041cde9142231664c62d253b96ae5262dc9519420cf79aa924750313e07af2c822c1bae528509d
7
- data.tar.gz: 2782d95be4f96c1a67a1696b96bb0e8cdaa84fc0a273ac671c39925615b884c6f7e2645df4a3e95d5e74b812e82ad00af0a0a741bf4d144536764fa1d5b16a60
6
+ metadata.gz: ba2ab93435b8078b4697b9f90bb7e189ff70dd12218890b1333a686f57b4ae498a3ee1b8eaf40861ba0b3e16fe3b65068c385f27345999ccf73e1eb78f9238a0
7
+ data.tar.gz: 6d6f7604d765ca59c5072477c28e29e298dc475d13bf614fcebead4e8612ba1dcd427c9920b536cb0bb9b0046e565f85db1e080918519ccbaab1dfef28d940ea
data/.gitlab-ci.yml CHANGED
@@ -8,9 +8,10 @@
8
8
  - vendor/ruby
9
9
 
10
10
  include:
11
- - component: gitlab.com/gitlab-org/components/danger-review/danger-review@~latest
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-qa (14.11.0)
4
+ gitlab-qa (14.13.0)
5
5
  activesupport (>= 6.1, < 7.2)
6
6
  gitlab (~> 4.19)
7
7
  http (~> 5.0)
@@ -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
@@ -154,6 +154,7 @@ module Gitlab
154
154
 
155
155
  docker.run(image: image, tag: tag) do |command|
156
156
  command << "-d"
157
+ command << "--shm-size 256m"
157
158
  command << "--name #{name}"
158
159
  command << "--net #{network}"
159
160
  command << "--hostname #{hostname}"
@@ -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, ["--", "--tag", "smoke"])
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 smoke test to verify update and seed data in environment") unless upgrade_path.first != release
104
- Runtime::Logger.info("Running smoke test to verify update") unless current_release != release
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 test suite after final upgrade to release '#{release}'")
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("Test run for release '#{gitlab.release}' finished with errors!")
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
@@ -7,6 +7,8 @@ module Gitlab
7
7
  VERSION_PATTERN = /^(?<version>\d+\.\d+\.\d+)/
8
8
  COMPONENT_PATTERN = /^(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/
9
9
 
10
+ VersionNotFoundError = Class.new(RuntimeError)
11
+
10
12
  # Get previous gitlab version
11
13
  #
12
14
  # @param [String] current_version
@@ -101,7 +103,8 @@ module Gitlab
101
103
  return fallback_minor unless tags
102
104
  return previous_major if current_minor.zero?
103
105
 
104
- versions.find { |version| version.to_s.match?(/^#{current_major}\.#{current_minor - 1}/) }
106
+ versions.find { |version| version.to_s.match?(/^#{current_major}\.#{current_minor - 1}/) } ||
107
+ raise(VersionNotFoundError, "Previous minor version for current version #{current_version} not available on Dockerhub (yet)")
105
108
  end
106
109
 
107
110
  # Previous first minor version
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '14.11.0'
5
+ VERSION = '14.13.0'
6
6
  end
7
7
  end
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.11.0
4
+ version: 14.13.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-06-25 00:00:00.000000000 Z
11
+ date: 2024-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control