chemlab 0.0.1 → 0.1.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.
Files changed (547) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chemlab.rb +35 -0
  3. data/lib/chemlab/api_fabricator.rb +134 -0
  4. data/lib/chemlab/attributable.rb +25 -0
  5. data/lib/chemlab/component.rb +87 -0
  6. data/lib/chemlab/configuration.rb +39 -0
  7. data/lib/chemlab/element.rb +22 -0
  8. data/lib/chemlab/page.rb +13 -0
  9. data/lib/chemlab/resource.rb +169 -0
  10. data/lib/chemlab/runtime/api_client.rb +18 -0
  11. data/lib/chemlab/runtime/browser.rb +66 -0
  12. data/lib/chemlab/runtime/env.rb +22 -0
  13. data/{qa → lib/chemlab}/runtime/logger.rb +1 -1
  14. data/{qa → lib/chemlab}/support/api.rb +2 -2
  15. data/lib/chemlab/support/logging.rb +176 -0
  16. data/{qa → lib/chemlab}/support/repeater.rb +1 -1
  17. data/{qa → lib/chemlab}/support/waiter.rb +2 -2
  18. data/lib/chemlab/version.rb +1 -1
  19. metadata +56 -629
  20. data/.gitignore +0 -4
  21. data/.rspec +0 -3
  22. data/.rspec_parallel +0 -5
  23. data/Dockerfile +0 -68
  24. data/Gemfile +0 -23
  25. data/Gemfile.lock +0 -137
  26. data/README.md +0 -201
  27. data/Rakefile +0 -47
  28. data/bin/qa +0 -7
  29. data/bin/test +0 -3
  30. data/chemlab.gemspec +0 -43
  31. data/knapsack/master_report.json +0 -54
  32. data/qa.rb +0 -513
  33. data/qa/ce/strategy.rb +0 -21
  34. data/qa/ee.rb +0 -234
  35. data/qa/ee/fixtures/gpg/admin.asc +0 -0
  36. data/qa/ee/fixtures/secure_license_files/.gitlab-ci.yml +0 -12
  37. data/qa/ee/fixtures/secure_license_files/gl-license-management-report.json +0 -24
  38. data/qa/ee/fixtures/secure_premade_reports/.gitlab-ci.yml +0 -61
  39. data/qa/ee/fixtures/secure_premade_reports/gl-container-scanning-report.json +0 -105
  40. data/qa/ee/fixtures/secure_premade_reports/gl-dast-report.json +0 -1
  41. data/qa/ee/fixtures/secure_premade_reports/gl-dependency-scanning-report.json +0 -226
  42. data/qa/ee/fixtures/secure_premade_reports/gl-license-management-report.json +0 -42
  43. data/qa/ee/fixtures/secure_premade_reports/gl-sast-report.json +0 -152
  44. data/qa/ee/fixtures/secure_premade_reports/yarn.lock +0 -10024
  45. data/qa/ee/page/admin/geo/nodes/new.rb +0 -36
  46. data/qa/ee/page/admin/geo/nodes/show.rb +0 -23
  47. data/qa/ee/page/admin/license.rb +0 -41
  48. data/qa/ee/page/admin/menu.rb +0 -55
  49. data/qa/ee/page/admin/monitoring/audit_log.rb +0 -27
  50. data/qa/ee/page/admin/overview/groups/edit.rb +0 -27
  51. data/qa/ee/page/admin/settings/component/elasticsearch.rb +0 -38
  52. data/qa/ee/page/admin/settings/component/email.rb +0 -35
  53. data/qa/ee/page/admin/settings/integration.rb +0 -25
  54. data/qa/ee/page/admin/settings/preferences.rb +0 -25
  55. data/qa/ee/page/admin/settings/templates.rb +0 -40
  56. data/qa/ee/page/component/design_management.rb +0 -80
  57. data/qa/ee/page/component/issue_board/show.rb +0 -154
  58. data/qa/ee/page/component/license_management.rb +0 -62
  59. data/qa/ee/page/component/secure_report.rb +0 -38
  60. data/qa/ee/page/component/web_ide/web_terminal_panel.rb +0 -58
  61. data/qa/ee/page/dashboard/projects.rb +0 -54
  62. data/qa/ee/page/file/show.rb +0 -49
  63. data/qa/ee/page/group/contribution_analytics.rb +0 -29
  64. data/qa/ee/page/group/epic/index.rb +0 -46
  65. data/qa/ee/page/group/epic/show.rb +0 -74
  66. data/qa/ee/page/group/issues_analytics.rb +0 -33
  67. data/qa/ee/page/group/members.rb +0 -19
  68. data/qa/ee/page/group/menu.rb +0 -117
  69. data/qa/ee/page/group/roadmap.rb +0 -34
  70. data/qa/ee/page/group/saml_sso_sign_in.rb +0 -22
  71. data/qa/ee/page/group/saml_sso_sign_up.rb +0 -34
  72. data/qa/ee/page/group/secure/show.rb +0 -24
  73. data/qa/ee/page/group/settings/general.rb +0 -112
  74. data/qa/ee/page/group/settings/ldap_sync.rb +0 -38
  75. data/qa/ee/page/group/settings/saml_sso.rb +0 -93
  76. data/qa/ee/page/insights/show.rb +0 -51
  77. data/qa/ee/page/main/banner.rb +0 -19
  78. data/qa/ee/page/merge_request/new.rb +0 -74
  79. data/qa/ee/page/merge_request/show.rb +0 -326
  80. data/qa/ee/page/profile/menu.rb +0 -15
  81. data/qa/ee/page/project/issue/index.rb +0 -46
  82. data/qa/ee/page/project/issue/show.rb +0 -97
  83. data/qa/ee/page/project/menu.rb +0 -17
  84. data/qa/ee/page/project/milestone/show.rb +0 -41
  85. data/qa/ee/page/project/new.rb +0 -56
  86. data/qa/ee/page/project/operations/kubernetes/show.rb +0 -50
  87. data/qa/ee/page/project/operations/metrics/show.rb +0 -101
  88. data/qa/ee/page/project/packages/index.rb +0 -30
  89. data/qa/ee/page/project/packages/show.rb +0 -29
  90. data/qa/ee/page/project/path_locks/index.rb +0 -30
  91. data/qa/ee/page/project/pipeline/show.rb +0 -34
  92. data/qa/ee/page/project/secure/dependency_list.rb +0 -19
  93. data/qa/ee/page/project/secure/show.rb +0 -17
  94. data/qa/ee/page/project/settings/ci_cd.rb +0 -25
  95. data/qa/ee/page/project/settings/integrations.rb +0 -21
  96. data/qa/ee/page/project/settings/license_compliance.rb +0 -67
  97. data/qa/ee/page/project/settings/merge_request.rb +0 -27
  98. data/qa/ee/page/project/settings/mirroring_repositories.rb +0 -30
  99. data/qa/ee/page/project/settings/protected_branches.rb +0 -37
  100. data/qa/ee/page/project/settings/push_rules.rb +0 -82
  101. data/qa/ee/page/project/settings/repository.rb +0 -27
  102. data/qa/ee/page/project/settings/services/jenkins.rb +0 -56
  103. data/qa/ee/page/project/show.rb +0 -35
  104. data/qa/ee/page/project/sub_menus/packages.rb +0 -27
  105. data/qa/ee/page/project/sub_menus/project.rb +0 -21
  106. data/qa/ee/page/project/sub_menus/repository.rb +0 -29
  107. data/qa/ee/page/project/sub_menus/security_compliance.rb +0 -44
  108. data/qa/ee/page/project/sub_menus/settings.rb +0 -42
  109. data/qa/ee/page/project/wiki/show.rb +0 -31
  110. data/qa/ee/resource/board/base_board.rb +0 -26
  111. data/qa/ee/resource/board/board_list/group/board_list.rb +0 -57
  112. data/qa/ee/resource/board/board_list/project/assignee_board_list.rb +0 -23
  113. data/qa/ee/resource/board/board_list/project/base_board_list.rb +0 -50
  114. data/qa/ee/resource/board/board_list/project/label_board_list.rb +0 -28
  115. data/qa/ee/resource/board/board_list/project/milestone_board_list.rb +0 -28
  116. data/qa/ee/resource/board/group_board.rb +0 -25
  117. data/qa/ee/resource/board/project_board.rb +0 -25
  118. data/qa/ee/resource/epic.rb +0 -60
  119. data/qa/ee/resource/geo/node.rb +0 -31
  120. data/qa/ee/resource/group_label.rb +0 -50
  121. data/qa/ee/resource/license.rb +0 -21
  122. data/qa/ee/resource/project_milestone.rb +0 -20
  123. data/qa/ee/resource/settings/elasticsearch.rb +0 -60
  124. data/qa/ee/runtime/env.rb +0 -30
  125. data/qa/ee/runtime/geo.rb +0 -28
  126. data/qa/ee/runtime/saml.rb +0 -37
  127. data/qa/ee/scenario/test/geo.rb +0 -211
  128. data/qa/ee/scenario/test/integration/elasticsearch.rb +0 -15
  129. data/qa/ee/scenario/test/integration/group_saml.rb +0 -17
  130. data/qa/ee/scenario/test/sanity/selectors.rb +0 -17
  131. data/qa/ee/strategy.rb +0 -28
  132. data/qa/fixtures/auto_devops_rack/Dockerfile +0 -9
  133. data/qa/fixtures/auto_devops_rack/Gemfile +0 -3
  134. data/qa/fixtures/auto_devops_rack/Gemfile.lock +0 -15
  135. data/qa/fixtures/auto_devops_rack/Rakefile +0 -7
  136. data/qa/fixtures/auto_devops_rack/config.ru +0 -1
  137. data/qa/fixtures/ldap/admin/1_add_nodes.ldif +0 -7
  138. data/qa/fixtures/ldap/admin/2_add_users.ldif +0 -63
  139. data/qa/fixtures/ldap/admin/3_add_groups.ldif +0 -16
  140. data/qa/fixtures/ldap/non_admin/1_add_nodes.ldif +0 -7
  141. data/qa/fixtures/ldap/non_admin/2_add_users.ldif +0 -61
  142. data/qa/fixtures/ldap/non_admin/3_add_groups.ldif +0 -16
  143. data/qa/fixtures/monitored_auto_devops/.gitlab-ci.yml +0 -337
  144. data/qa/flow/login.rb +0 -39
  145. data/qa/flow/project.rb +0 -19
  146. data/qa/flow/saml.rb +0 -72
  147. data/qa/flow/user.rb +0 -26
  148. data/qa/git/location.rb +0 -34
  149. data/qa/git/repository.rb +0 -269
  150. data/qa/page/admin/menu.rb +0 -110
  151. data/qa/page/admin/new_session.rb +0 -22
  152. data/qa/page/admin/overview/groups/edit.rb +0 -23
  153. data/qa/page/admin/overview/groups/index.rb +0 -32
  154. data/qa/page/admin/overview/groups/show.rb +0 -21
  155. data/qa/page/admin/overview/users/index.rb +0 -35
  156. data/qa/page/admin/overview/users/show.rb +0 -31
  157. data/qa/page/admin/settings/component/account_and_limit.rb +0 -26
  158. data/qa/page/admin/settings/component/ip_limits.rb +0 -30
  159. data/qa/page/admin/settings/component/outbound_requests.rb +0 -33
  160. data/qa/page/admin/settings/component/performance_bar.rb +0 -27
  161. data/qa/page/admin/settings/component/repository_storage.rb +0 -26
  162. data/qa/page/admin/settings/general.rb +0 -23
  163. data/qa/page/admin/settings/metrics_and_profiling.rb +0 -23
  164. data/qa/page/admin/settings/network.rb +0 -30
  165. data/qa/page/admin/settings/repository.rb +0 -23
  166. data/qa/page/alert/auto_devops_alert.rb +0 -13
  167. data/qa/page/base.rb +0 -348
  168. data/qa/page/component/breadcrumbs.rb +0 -19
  169. data/qa/page/component/ci_badge_link.rb +0 -49
  170. data/qa/page/component/clone_panel.rb +0 -38
  171. data/qa/page/component/confirm_modal.rb +0 -25
  172. data/qa/page/component/dropdown_filter.rb +0 -16
  173. data/qa/page/component/dropzone.rb +0 -33
  174. data/qa/page/component/groups_filter.rb +0 -37
  175. data/qa/page/component/issuable/common.rb +0 -31
  176. data/qa/page/component/lazy_loader.rb +0 -15
  177. data/qa/page/component/legacy_clone_panel.rb +0 -47
  178. data/qa/page/component/note.rb +0 -84
  179. data/qa/page/component/select2.rb +0 -48
  180. data/qa/page/component/users_select.rb +0 -14
  181. data/qa/page/component/web_ide/alert.rb +0 -27
  182. data/qa/page/dashboard/groups.rb +0 -34
  183. data/qa/page/dashboard/projects.rb +0 -37
  184. data/qa/page/dashboard/snippet/index.rb +0 -21
  185. data/qa/page/dashboard/snippet/new.rb +0 -70
  186. data/qa/page/dashboard/snippet/show.rb +0 -63
  187. data/qa/page/dashboard/welcome.rb +0 -17
  188. data/qa/page/element.rb +0 -55
  189. data/qa/page/file/edit.rb +0 -13
  190. data/qa/page/file/form.rb +0 -49
  191. data/qa/page/file/shared/commit_button.rb +0 -25
  192. data/qa/page/file/shared/commit_message.rb +0 -21
  193. data/qa/page/file/shared/editor.rb +0 -33
  194. data/qa/page/file/show.rb +0 -36
  195. data/qa/page/group/menu.rb +0 -52
  196. data/qa/page/group/new.rb +0 -37
  197. data/qa/page/group/settings/general.rb +0 -115
  198. data/qa/page/group/show.rb +0 -74
  199. data/qa/page/group/sub_menus/common.rb +0 -27
  200. data/qa/page/group/sub_menus/members.rb +0 -45
  201. data/qa/page/issuable/sidebar.rb +0 -27
  202. data/qa/page/label/index.rb +0 -34
  203. data/qa/page/label/new.rb +0 -32
  204. data/qa/page/layout/banner.rb +0 -19
  205. data/qa/page/layout/performance_bar.rb +0 -41
  206. data/qa/page/main/login.rb +0 -181
  207. data/qa/page/main/menu.rb +0 -150
  208. data/qa/page/main/oauth.rb +0 -21
  209. data/qa/page/main/sign_up.rb +0 -37
  210. data/qa/page/main/terms.rb +0 -21
  211. data/qa/page/mattermost/login.rb +0 -28
  212. data/qa/page/mattermost/main.rb +0 -15
  213. data/qa/page/merge_request/new.rb +0 -68
  214. data/qa/page/merge_request/show.rb +0 -232
  215. data/qa/page/profile/emails.rb +0 -29
  216. data/qa/page/profile/menu.rb +0 -52
  217. data/qa/page/profile/password.rb +0 -23
  218. data/qa/page/profile/personal_access_tokens.rb +0 -67
  219. data/qa/page/profile/ssh_keys.rb +0 -42
  220. data/qa/page/profile/two_factor_auth.rb +0 -17
  221. data/qa/page/project/activity.rb +0 -17
  222. data/qa/page/project/branches/show.rb +0 -56
  223. data/qa/page/project/commit/show.rb +0 -32
  224. data/qa/page/project/fork/new.rb +0 -19
  225. data/qa/page/project/import/github.rb +0 -78
  226. data/qa/page/project/issue/index.rb +0 -71
  227. data/qa/page/project/issue/new.rb +0 -35
  228. data/qa/page/project/issue/show.rb +0 -168
  229. data/qa/page/project/job/show.rb +0 -53
  230. data/qa/page/project/menu.rb +0 -43
  231. data/qa/page/project/milestone/index.rb +0 -19
  232. data/qa/page/project/milestone/new.rb +0 -29
  233. data/qa/page/project/new.rb +0 -76
  234. data/qa/page/project/operations/environments/index.rb +0 -21
  235. data/qa/page/project/operations/environments/show.rb +0 -23
  236. data/qa/page/project/operations/kubernetes/add.rb +0 -21
  237. data/qa/page/project/operations/kubernetes/add_existing.rb +0 -46
  238. data/qa/page/project/operations/kubernetes/index.rb +0 -25
  239. data/qa/page/project/operations/kubernetes/show.rb +0 -81
  240. data/qa/page/project/operations/metrics/show.rb +0 -87
  241. data/qa/page/project/pipeline/index.rb +0 -43
  242. data/qa/page/project/pipeline/show.rb +0 -76
  243. data/qa/page/project/settings/advanced.rb +0 -75
  244. data/qa/page/project/settings/auto_devops.rb +0 -21
  245. data/qa/page/project/settings/ci_cd.rb +0 -39
  246. data/qa/page/project/settings/ci_variables.rb +0 -56
  247. data/qa/page/project/settings/common.rb +0 -13
  248. data/qa/page/project/settings/deploy_keys.rb +0 -69
  249. data/qa/page/project/settings/deploy_tokens.rb +0 -64
  250. data/qa/page/project/settings/main.rb +0 -60
  251. data/qa/page/project/settings/members.rb +0 -62
  252. data/qa/page/project/settings/merge_request.rb +0 -32
  253. data/qa/page/project/settings/mirroring_repositories.rb +0 -132
  254. data/qa/page/project/settings/protected_branches.rb +0 -72
  255. data/qa/page/project/settings/repository.rb +0 -55
  256. data/qa/page/project/settings/runners.rb +0 -37
  257. data/qa/page/project/settings/visibility_features_permissions.rb +0 -26
  258. data/qa/page/project/show.rb +0 -165
  259. data/qa/page/project/sub_menus/ci_cd.rb +0 -27
  260. data/qa/page/project/sub_menus/common.rb +0 -19
  261. data/qa/page/project/sub_menus/issues.rb +0 -63
  262. data/qa/page/project/sub_menus/operations.rb +0 -58
  263. data/qa/page/project/sub_menus/project.rb +0 -29
  264. data/qa/page/project/sub_menus/repository.rb +0 -48
  265. data/qa/page/project/sub_menus/settings.rb +0 -81
  266. data/qa/page/project/web_ide/edit.rb +0 -139
  267. data/qa/page/project/wiki/edit.rb +0 -21
  268. data/qa/page/project/wiki/git_access.rb +0 -13
  269. data/qa/page/project/wiki/new.rb +0 -61
  270. data/qa/page/project/wiki/show.rb +0 -31
  271. data/qa/page/search/results.rb +0 -55
  272. data/qa/page/settings/common.rb +0 -26
  273. data/qa/page/sub_menus/common.rb +0 -50
  274. data/qa/page/validatable.rb +0 -21
  275. data/qa/page/validator.rb +0 -52
  276. data/qa/page/view.rb +0 -59
  277. data/qa/resource/api_fabricator.rb +0 -137
  278. data/qa/resource/base.rb +0 -170
  279. data/qa/resource/ci_variable.rb +0 -57
  280. data/qa/resource/deploy_key.rb +0 -39
  281. data/qa/resource/deploy_token.rb +0 -48
  282. data/qa/resource/events/base.rb +0 -42
  283. data/qa/resource/events/project.rb +0 -25
  284. data/qa/resource/file.rb +0 -63
  285. data/qa/resource/fork.rb +0 -92
  286. data/qa/resource/group.rb +0 -83
  287. data/qa/resource/issue.rb +0 -61
  288. data/qa/resource/kubernetes_cluster/base.rb +0 -40
  289. data/qa/resource/kubernetes_cluster/project_cluster.rb +0 -72
  290. data/qa/resource/label.rb +0 -61
  291. data/qa/resource/members.rb +0 -36
  292. data/qa/resource/merge_request.rb +0 -105
  293. data/qa/resource/merge_request_from_fork.rb +0 -33
  294. data/qa/resource/personal_access_token.rb +0 -31
  295. data/qa/resource/project.rb +0 -179
  296. data/qa/resource/project_imported_from_github.rb +0 -31
  297. data/qa/resource/project_member.rb +0 -35
  298. data/qa/resource/project_milestone.rb +0 -34
  299. data/qa/resource/protected_branch.rb +0 -76
  300. data/qa/resource/repository/commit.rb +0 -81
  301. data/qa/resource/repository/project_push.rb +0 -44
  302. data/qa/resource/repository/push.rb +0 -113
  303. data/qa/resource/repository/wiki_push.rb +0 -38
  304. data/qa/resource/runner.rb +0 -75
  305. data/qa/resource/sandbox.rb +0 -79
  306. data/qa/resource/settings/hashed_storage.rb +0 -26
  307. data/qa/resource/snippet.rb +0 -30
  308. data/qa/resource/ssh_key.rb +0 -57
  309. data/qa/resource/tag.rb +0 -30
  310. data/qa/resource/user.rb +0 -150
  311. data/qa/resource/user_gpg.rb +0 -46
  312. data/qa/resource/visibility.rb +0 -17
  313. data/qa/resource/wiki.rb +0 -48
  314. data/qa/runtime/address.rb +0 -29
  315. data/qa/runtime/api/client.rb +0 -90
  316. data/qa/runtime/api/request.rb +0 -49
  317. data/qa/runtime/application_settings.rb +0 -46
  318. data/qa/runtime/browser.rb +0 -220
  319. data/qa/runtime/env.rb +0 -330
  320. data/qa/runtime/feature.rb +0 -87
  321. data/qa/runtime/fixtures.rb +0 -43
  322. data/qa/runtime/gpg.rb +0 -37
  323. data/qa/runtime/ip_address.rb +0 -33
  324. data/qa/runtime/key/base.rb +0 -38
  325. data/qa/runtime/key/ecdsa.rb +0 -13
  326. data/qa/runtime/key/ed25519.rb +0 -13
  327. data/qa/runtime/key/rsa.rb +0 -13
  328. data/qa/runtime/mail_hog.rb +0 -15
  329. data/qa/runtime/namespace.rb +0 -27
  330. data/qa/runtime/path.rb +0 -13
  331. data/qa/runtime/release.rb +0 -40
  332. data/qa/runtime/scenario.rb +0 -38
  333. data/qa/runtime/search.rb +0 -124
  334. data/qa/runtime/user.rb +0 -57
  335. data/qa/scenario/actable.rb +0 -25
  336. data/qa/scenario/bootable.rb +0 -53
  337. data/qa/scenario/shared_attributes.rb +0 -14
  338. data/qa/scenario/template.rb +0 -64
  339. data/qa/scenario/test/instance.rb +0 -36
  340. data/qa/scenario/test/instance/all.rb +0 -18
  341. data/qa/scenario/test/instance/smoke.rb +0 -20
  342. data/qa/scenario/test/integration/github.rb +0 -20
  343. data/qa/scenario/test/integration/instance_saml.rb +0 -13
  344. data/qa/scenario/test/integration/kubernetes.rb +0 -13
  345. data/qa/scenario/test/integration/ldap_no_server.rb +0 -13
  346. data/qa/scenario/test/integration/ldap_no_tls.rb +0 -13
  347. data/qa/scenario/test/integration/ldap_tls.rb +0 -13
  348. data/qa/scenario/test/integration/mattermost.rb +0 -26
  349. data/qa/scenario/test/integration/object_storage.rb +0 -13
  350. data/qa/scenario/test/integration/smtp.rb +0 -13
  351. data/qa/scenario/test/sanity/framework.rb +0 -19
  352. data/qa/scenario/test/sanity/selectors.rb +0 -61
  353. data/qa/service/cluster_provider/base.rb +0 -41
  354. data/qa/service/cluster_provider/gcloud.rb +0 -115
  355. data/qa/service/cluster_provider/k3d.rb +0 -134
  356. data/qa/service/cluster_provider/k3s.rb +0 -94
  357. data/qa/service/cluster_provider/minikube.rb +0 -26
  358. data/qa/service/docker_run/base.rb +0 -47
  359. data/qa/service/docker_run/gitlab_runner.rb +0 -58
  360. data/qa/service/docker_run/jenkins.rb +0 -43
  361. data/qa/service/docker_run/k3s.rb +0 -46
  362. data/qa/service/docker_run/ldap.rb +0 -41
  363. data/qa/service/docker_run/maven.rb +0 -44
  364. data/qa/service/docker_run/node_js.rb +0 -38
  365. data/qa/service/docker_run/saml_idp.rb +0 -69
  366. data/qa/service/kubernetes_cluster.rb +0 -107
  367. data/qa/service/omnibus.rb +0 -23
  368. data/qa/service/shellout.rb +0 -31
  369. data/qa/specs/features/api/1_manage/.gitkeep +0 -0
  370. data/qa/specs/features/api/1_manage/rate_limits_spec.rb +0 -17
  371. data/qa/specs/features/api/1_manage/users_spec.rb +0 -35
  372. data/qa/specs/features/api/2_plan/.gitkeep +0 -0
  373. data/qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb +0 -48
  374. data/qa/specs/features/api/3_create/repository/files_spec.rb +0 -106
  375. data/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb +0 -74
  376. data/qa/specs/features/api/4_verify/.gitkeep +0 -0
  377. data/qa/specs/features/api/5_package/.gitkeep +0 -0
  378. data/qa/specs/features/api/6_release/.gitkeep +0 -0
  379. data/qa/specs/features/api/7_configure/.gitkeep +0 -0
  380. data/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb +0 -20
  381. data/qa/specs/features/browser_ui/1_manage/group/transfer_project_spec.rb +0 -56
  382. data/qa/specs/features/browser_ui/1_manage/login/log_in_spec.rb +0 -25
  383. data/qa/specs/features/browser_ui/1_manage/login/log_into_gitlab_via_ldap_spec.rb +0 -15
  384. data/qa/specs/features/browser_ui/1_manage/login/log_into_mattermost_via_gitlab_spec.rb +0 -20
  385. data/qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb +0 -19
  386. data/qa/specs/features/browser_ui/1_manage/login/register_spec.rb +0 -27
  387. data/qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb +0 -24
  388. data/qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb +0 -23
  389. data/qa/specs/features/browser_ui/1_manage/project/dashboard_images_spec.rb +0 -57
  390. data/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb +0 -117
  391. data/qa/specs/features/browser_ui/1_manage/project/view_project_activity_spec.rb +0 -22
  392. data/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb +0 -46
  393. data/qa/specs/features/browser_ui/2_plan/issue/check_mentions_for_xss_spec.rb +0 -45
  394. data/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb +0 -35
  395. data/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb +0 -29
  396. data/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb +0 -40
  397. data/qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb +0 -40
  398. data/qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb +0 -36
  399. data/qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb +0 -28
  400. data/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb +0 -35
  401. data/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb +0 -64
  402. data/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb +0 -26
  403. data/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb +0 -49
  404. data/qa/specs/features/browser_ui/3_create/merge_request/squash_merge_request_spec.rb +0 -52
  405. data/qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb +0 -35
  406. data/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb +0 -68
  407. data/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb +0 -88
  408. data/qa/specs/features/browser_ui/3_create/repository/add_ssh_key_spec.rb +0 -30
  409. data/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb +0 -51
  410. data/qa/specs/features/browser_ui/3_create/repository/create_edit_delete_file_via_web_spec.rb +0 -58
  411. data/qa/specs/features/browser_ui/3_create/repository/move_project_create_fork_spec.rb +0 -53
  412. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb +0 -48
  413. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb +0 -74
  414. data/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb +0 -34
  415. data/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb +0 -43
  416. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb +0 -81
  417. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb +0 -44
  418. data/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb +0 -63
  419. data/qa/specs/features/browser_ui/3_create/repository/use_ssh_key_spec.rb +0 -37
  420. data/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb +0 -66
  421. data/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb +0 -29
  422. data/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb +0 -69
  423. data/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb +0 -43
  424. data/qa/specs/features/browser_ui/3_create/wiki/create_edit_clone_push_wiki_spec.rb +0 -42
  425. data/qa/specs/features/browser_ui/4_verify/ci_variable/add_remove_ci_variable_spec.rb +0 -60
  426. data/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb +0 -89
  427. data/qa/specs/features/browser_ui/4_verify/runner/register_runner_spec.rb +0 -34
  428. data/qa/specs/features/browser_ui/5_package/.gitkeep +0 -0
  429. data/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb +0 -28
  430. data/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb +0 -102
  431. data/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb +0 -22
  432. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_dependent_relationship_spec.rb +0 -122
  433. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_independent_relationship_spec.rb +0 -121
  434. data/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb +0 -147
  435. data/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb +0 -38
  436. data/qa/specs/features/browser_ui/8_monitor/apm/dashboards_spec.rb +0 -97
  437. data/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb +0 -38
  438. data/qa/specs/features/ee/api/1_manage/.gitkeep +0 -0
  439. data/qa/specs/features/ee/api/2_plan/.gitkeep +0 -0
  440. data/qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb +0 -173
  441. data/qa/specs/features/ee/api/3_create/.gitkeep +0 -0
  442. data/qa/specs/features/ee/api/4_verify/.gitkeep +0 -0
  443. data/qa/specs/features/ee/api/5_package/.gitkeep +0 -0
  444. data/qa/specs/features/ee/api/6_release/.gitkeep +0 -0
  445. data/qa/specs/features/ee/api/7_configure/.gitkeep +0 -0
  446. data/qa/specs/features/ee/api/enablement/elasticsearch/advanced_global_advanced_syntax_search_spec.rb +0 -70
  447. data/qa/specs/features/ee/api/enablement/elasticsearch/elasticsearch_api_spec.rb +0 -84
  448. data/qa/specs/features/ee/api/geo/geo_nodes_spec.rb +0 -91
  449. data/qa/specs/features/ee/browser_ui/1_manage/.gitkeep +0 -0
  450. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_1_spec.rb +0 -155
  451. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_2_spec.rb +0 -103
  452. data/qa/specs/features/ee/browser_ui/1_manage/group/group_file_template_spec.rb +0 -141
  453. data/qa/specs/features/ee/browser_ui/1_manage/group/group_ldap_sync_spec.rb +0 -183
  454. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_spec.rb +0 -115
  455. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_group_managed_accounts_spec.rb +0 -178
  456. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb +0 -87
  457. data/qa/specs/features/ee/browser_ui/1_manage/group/restrict_by_ip_address_spec.rb +0 -107
  458. data/qa/specs/features/ee/browser_ui/1_manage/insights/default_insights_spec.rb +0 -48
  459. data/qa/specs/features/ee/browser_ui/1_manage/instance/instance_audit_logs_spec.rb +0 -124
  460. data/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb +0 -63
  461. data/qa/specs/features/ee/browser_ui/1_manage/project/project_audit_logs_spec.rb +0 -127
  462. data/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb +0 -165
  463. data/qa/specs/features/ee/browser_ui/2_plan/.gitkeep +0 -0
  464. data/qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb +0 -46
  465. data/qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb +0 -28
  466. data/qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb +0 -96
  467. data/qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb +0 -40
  468. data/qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb +0 -31
  469. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb +0 -28
  470. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb +0 -44
  471. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb +0 -31
  472. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/focus_mode_spec.rb +0 -28
  473. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb +0 -48
  474. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb +0 -103
  475. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb +0 -37
  476. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb +0 -40
  477. data/qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb +0 -35
  478. data/qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb +0 -46
  479. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb +0 -45
  480. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb +0 -70
  481. data/qa/specs/features/ee/browser_ui/2_plan/related_issues/related_issues_spec.rb +0 -50
  482. data/qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb +0 -58
  483. data/qa/specs/features/ee/browser_ui/3_create/.gitkeep +0 -0
  484. data/qa/specs/features/ee/browser_ui/3_create/contribution_analytics_spec.rb +0 -53
  485. data/qa/specs/features/ee/browser_ui/3_create/design_management_spec.rb +0 -29
  486. data/qa/specs/features/ee/browser_ui/3_create/jenkins/jenkins_build_status_spec.rb +0 -158
  487. data/qa/specs/features/ee/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb +0 -80
  488. data/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb +0 -97
  489. data/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb +0 -83
  490. data/qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb +0 -75
  491. data/qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb +0 -161
  492. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb +0 -52
  493. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb +0 -71
  494. data/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb +0 -202
  495. data/qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb +0 -120
  496. data/qa/specs/features/ee/browser_ui/3_create/web_ide/web_terminal_spec.rb +0 -80
  497. data/qa/specs/features/ee/browser_ui/4_verify/.gitkeep +0 -0
  498. data/qa/specs/features/ee/browser_ui/5_package/.gitkeep +0 -0
  499. data/qa/specs/features/ee/browser_ui/5_package/maven_repository_spec.rb +0 -102
  500. data/qa/specs/features/ee/browser_ui/5_package/npm_registry_spec.rb +0 -75
  501. data/qa/specs/features/ee/browser_ui/6_release/.gitkeep +0 -0
  502. data/qa/specs/features/ee/browser_ui/6_release/multi-project_pipelines_spec.rb +0 -98
  503. data/qa/specs/features/ee/browser_ui/6_release/pipelines_for_merged_results_and_merge_trains_spec.rb +0 -137
  504. data/qa/specs/features/ee/browser_ui/7_configure/.gitkeep +0 -0
  505. data/qa/specs/features/ee/browser_ui/8_monitor/.gitkeep +0 -0
  506. data/qa/specs/features/ee/browser_ui/8_monitor/apm/metrics_spec.rb +0 -68
  507. data/qa/specs/features/ee/browser_ui/8_monitor/health/alerting_spec.rb +0 -106
  508. data/qa/specs/features/ee/browser_ui/8_monitor/health/cluster_health_spec.rb +0 -52
  509. data/qa/specs/features/ee/browser_ui/enablement/elasticsearch/elasticsearch_reindexing_spec.rb +0 -78
  510. data/qa/specs/features/ee/browser_ui/geo/attachment_replication_spec.rb +0 -63
  511. data/qa/specs/features/ee/browser_ui/geo/database_delete_replication_spec.rb +0 -60
  512. data/qa/specs/features/ee/browser_ui/geo/http_push_spec.rb +0 -121
  513. data/qa/specs/features/ee/browser_ui/geo/http_push_to_secondary_spec.rb +0 -174
  514. data/qa/specs/features/ee/browser_ui/geo/rename_replication_spec.rb +0 -75
  515. data/qa/specs/features/ee/browser_ui/geo/ssh_push_spec.rb +0 -151
  516. data/qa/specs/features/ee/browser_ui/geo/ssh_push_to_secondary_spec.rb +0 -189
  517. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_spec.rb +0 -68
  518. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_to_secondary_spec.rb +0 -105
  519. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_spec.rb +0 -93
  520. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_to_secondary_spec.rb +0 -110
  521. data/qa/specs/features/ee/browser_ui/secure/create_merge_request_with_secure_spec.rb +0 -79
  522. data/qa/specs/features/ee/browser_ui/secure/license_compliance_spec.rb +0 -98
  523. data/qa/specs/features/ee/browser_ui/secure/merge_request_license_widget_spec.rb +0 -134
  524. data/qa/specs/features/ee/browser_ui/secure/security_reports_spec.rb +0 -143
  525. data/qa/specs/features/ee/browser_ui/secure/vulnerability_management_spec.rb +0 -101
  526. data/qa/specs/features/sanity/framework_spec.rb +0 -21
  527. data/qa/specs/helpers/quarantine.rb +0 -84
  528. data/qa/specs/loop_runner.rb +0 -21
  529. data/qa/specs/parallel_runner.rb +0 -33
  530. data/qa/specs/runner.rb +0 -78
  531. data/qa/support/dates.rb +0 -21
  532. data/qa/support/page/logging.rb +0 -178
  533. data/qa/support/retrier.rb +0 -64
  534. data/qa/support/wait_for_requests.rb +0 -25
  535. data/qa/tools/delete_subgroups.rb +0 -66
  536. data/qa/tools/delete_test_ssh_keys.rb +0 -61
  537. data/qa/tools/generate_perf_testdata.rb +0 -301
  538. data/qa/tools/revoke_all_personal_access_tokens.rb +0 -44
  539. data/qa/vendor/jenkins/page/base.rb +0 -24
  540. data/qa/vendor/jenkins/page/configure.rb +0 -48
  541. data/qa/vendor/jenkins/page/configure_job.rb +0 -72
  542. data/qa/vendor/jenkins/page/last_job_console.rb +0 -44
  543. data/qa/vendor/jenkins/page/login.rb +0 -31
  544. data/qa/vendor/jenkins/page/new_credentials.rb +0 -50
  545. data/qa/vendor/jenkins/page/new_job.rb +0 -38
  546. data/qa/vendor/saml_idp/page/base.rb +0 -14
  547. data/qa/vendor/saml_idp/page/login.rb +0 -31
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module ClusterProvider
6
- class Minikube < Base
7
- def validate_dependencies
8
- find_executable('minikube') || raise("You must first install `minikube` executable to run these tests.")
9
- end
10
-
11
- def set_credentials(admin_user)
12
- end
13
-
14
- def setup
15
- shell 'minikube stop'
16
- shell "minikube profile #{cluster_name}"
17
- shell 'minikube start'
18
- end
19
-
20
- def teardown
21
- shell 'minikube delete'
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module DockerRun
6
- class Base
7
- include Service::Shellout
8
-
9
- def initialize
10
- @network = Runtime::Scenario.attributes[:network] || 'test'
11
- end
12
-
13
- def network
14
- shell "docker network inspect #{@network}"
15
- rescue CommandError
16
- 'bridge'
17
- else
18
- @network
19
- end
20
-
21
- def pull
22
- shell "docker pull #{@image}"
23
- end
24
-
25
- def host_name
26
- "#{@name}.#{network}"
27
- end
28
-
29
- def register!
30
- raise NotImplementedError
31
- end
32
-
33
- def remove!
34
- shell "docker rm -f #{@name}" if running?
35
- end
36
-
37
- def running?
38
- `docker ps -f name=#{@name}`.include?(@name)
39
- end
40
-
41
- def read_file(file_path)
42
- `docker exec #{@name} /bin/cat #{file_path}`
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,58 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'securerandom'
4
-
5
- module QA
6
- module Service
7
- module DockerRun
8
- class GitlabRunner < Base
9
- attr_accessor :token, :address, :tags, :image, :run_untagged
10
- attr_writer :config
11
-
12
- def initialize(name)
13
- @image = 'gitlab/gitlab-runner:alpine'
14
- @name = name || "qa-runner-#{SecureRandom.hex(4)}"
15
- @tags = %w[qa test]
16
- @run_untagged = false
17
-
18
- super()
19
- end
20
-
21
- def config
22
- @config ||= <<~END
23
- concurrent = 1
24
- check_interval = 0
25
-
26
- [session_server]
27
- session_timeout = 1800
28
- END
29
- end
30
-
31
- def register!
32
- shell <<~CMD.tr("\n", ' ')
33
- docker run -d --rm --entrypoint=/bin/sh
34
- --network #{network} --name #{@name}
35
- -p 8093:8093
36
- -e CI_SERVER_URL=#{@address}
37
- -e REGISTER_NON_INTERACTIVE=true
38
- -e REGISTRATION_TOKEN=#{@token}
39
- -e RUNNER_EXECUTOR=shell
40
- -e RUNNER_TAG_LIST=#{@tags.join(',')}
41
- -e RUNNER_NAME=#{@name}
42
- #{@image} -c "#{register_command}"
43
- CMD
44
- end
45
-
46
- private
47
-
48
- def register_command
49
- <<~CMD
50
- printf '#{config.chomp.gsub(/\n/, "\\n").gsub('"', '\"')}' > /etc/gitlab-runner/config.toml &&
51
- gitlab-runner register --run-untagged=#{@run_untagged} &&
52
- gitlab-runner run
53
- CMD
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module DockerRun
6
- class Jenkins < Base
7
- def initialize
8
- @image = 'registry.gitlab.com/gitlab-org/gitlab-qa/jenkins-gitlab:version1'
9
- @name = 'jenkins-server'
10
- @port = '8080'
11
- super()
12
- end
13
-
14
- def host_address
15
- "http://#{host_name}:#{@port}"
16
- end
17
-
18
- def host_name
19
- return 'localhost' unless QA::Runtime::Env.running_in_ci?
20
-
21
- super
22
- end
23
-
24
- def register!
25
- command = <<~CMD.tr("\n", ' ')
26
- docker run -d --rm
27
- --network #{network}
28
- --hostname #{host_name}
29
- --name #{@name}
30
- --env JENKINS_HOME=jenkins_home
31
- --publish #{@port}:8080
32
- --publish 50000:50000
33
- #{@image}
34
- CMD
35
-
36
- command.gsub!("--network #{network} ", '') unless QA::Runtime::Env.running_in_ci?
37
-
38
- shell command
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module DockerRun
6
- class K3s < Base
7
- def initialize
8
- @image = 'registry.gitlab.com/gitlab-org/cluster-integration/test-utils/k3s-gitlab-ci/releases/v0.6.1'
9
- @name = 'k3s'
10
- super
11
- end
12
-
13
- def register!
14
- pull
15
- start_k3s
16
- end
17
-
18
- def host_name
19
- return 'localhost' unless Runtime::Env.running_in_ci?
20
-
21
- super
22
- end
23
-
24
- def kubeconfig
25
- read_file('/etc/rancher/k3s/k3s.yaml').chomp
26
- end
27
-
28
- def start_k3s
29
- command = <<~CMD.tr("\n", ' ')
30
- docker run -d --rm
31
- --network #{network}
32
- --hostname #{host_name}
33
- --name #{@name}
34
- --publish 6443:6443
35
- --privileged
36
- #{@image} server --cluster-secret some-secret
37
- CMD
38
-
39
- command.gsub!("--network #{network} ", '') unless QA::Runtime::Env.running_in_ci?
40
-
41
- shell command
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module DockerRun
6
- class LDAP < Base
7
- def initialize(volume)
8
- @image = 'osixia/openldap:latest'
9
- @name = 'ldap-server'
10
- @volume = volume
11
-
12
- super()
13
- end
14
-
15
- def register!
16
- shell <<~CMD.tr("\n", ' ')
17
- docker run -d --rm
18
- --network #{network}
19
- --hostname #{host_name}
20
- --name #{@name}
21
- -p 389:389
22
- --volume #{volume_or_fixture(@volume)}:/container/service/slapd/assets/config/bootstrap/ldif/custom
23
- #{@image} --copy-service
24
- CMD
25
- end
26
-
27
- def volume_or_fixture(volume_name)
28
- if volume_exists?(volume_name)
29
- volume_name
30
- else
31
- File.expand_path("../fixtures/ldap/#{volume_name}", __dir__)
32
- end
33
- end
34
-
35
- def volume_exists?(volume_name)
36
- `docker volume ls -q -f name=#{volume_name}`.include?(volume_name)
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module DockerRun
6
- class Maven < Base
7
- def initialize(volume_host_path)
8
- @image = 'maven:3.6.2-ibmjava-8-alpine'
9
- @name = "qa-maven-#{SecureRandom.hex(8)}"
10
- @volume_host_path = volume_host_path
11
-
12
- super()
13
- end
14
-
15
- def publish!
16
- # When we run the tests via gitlab-qa, we use docker-in-docker
17
- # which means that host of a volume mount would be the host that
18
- # started the gitlab-qa QA container (e.g., the CI runner),
19
- # not the gitlab-qa container itself. That means we can't
20
- # mount a volume from the file system inside the gitlab-qa
21
- # container.
22
- #
23
- # Instead, we copy the files into the container.
24
- shell <<~CMD.tr("\n", ' ')
25
- docker run -d --rm
26
- --network #{network}
27
- --hostname #{host_name}
28
- --name #{@name}
29
- --volume #{@volume_host_path}:/home/maven
30
- #{@image} sh -c "sleep 300"
31
- CMD
32
- shell "docker cp #{@volume_host_path}/. #{@name}:/home/maven"
33
- shell "docker exec -t #{@name} sh -c 'cd /home/maven && mvn deploy -s settings.xml'"
34
-
35
- # Stop the container when `mvn deploy` is finished otherwise
36
- # the sleeping container will hold onto the files in @volume_host_path,
37
- # which causes problems when they're created in a tmp dir
38
- # that we want to delete
39
- shell "docker stop #{@name}"
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module DockerRun
6
- class NodeJs < Base
7
- def initialize(volume_host_path)
8
- @image = 'node:12.11.1-alpine'
9
- @name = "qa-node-#{SecureRandom.hex(8)}"
10
- @volume_host_path = volume_host_path
11
-
12
- super()
13
- end
14
-
15
- def publish!
16
- # When we run the tests via gitlab-qa, we use docker-in-docker
17
- # which means that host of a volume mount would be the host that
18
- # started the gitlab-qa QA container (e.g., the CI runner),
19
- # not the gitlab-qa container itself. That means we can't
20
- # mount a volume from the file system inside the gitlab-qa
21
- # container.
22
- #
23
- # Instead, we copy the files into the container.
24
- shell <<~CMD.tr("\n", ' ')
25
- docker run -d --rm
26
- --network #{network}
27
- --hostname #{host_name}
28
- --name #{@name}
29
- --volume #{@volume_host_path}:/home/node
30
- #{@image} sh -c "sleep 60"
31
- CMD
32
- shell "docker cp #{@volume_host_path}/. #{@name}:/home/node"
33
- shell "docker exec -t #{@name} sh -c 'cd /home/node && npm publish'"
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- module Service
5
- module DockerRun
6
- class SamlIdp < Base
7
- def initialize(gitlab_host, group)
8
- @image = 'jamedjo/test-saml-idp'
9
- @name = 'saml-idp-server'
10
- @gitlab_host = gitlab_host
11
- @group = group
12
- super()
13
- end
14
-
15
- def idp_base_url
16
- "https://#{host_name}:8443/simplesaml"
17
- end
18
-
19
- def idp_sso_url
20
- "#{idp_base_url}/saml2/idp/SSOService.php"
21
- end
22
-
23
- def idp_sign_out_url
24
- "#{idp_base_url}/module.php/core/authenticate.php?as=example-userpass&logout"
25
- end
26
-
27
- def idp_signed_out_url
28
- "#{idp_base_url}/logout.php"
29
- end
30
-
31
- def idp_metadata_url
32
- "#{idp_base_url}/saml2/idp/metadata.php"
33
- end
34
-
35
- def idp_issuer
36
- idp_metadata_url
37
- end
38
-
39
- def idp_certificate_fingerprint
40
- QA::Runtime::Env.simple_saml_fingerprint || '119b9e027959cdb7c662cfd075d9e2ef384e445f'
41
- end
42
-
43
- def host_name
44
- return 'localhost' unless QA::Runtime::Env.running_in_ci?
45
-
46
- super
47
- end
48
-
49
- def register!
50
- command = <<~CMD.tr("\n", ' ')
51
- docker run -d --rm
52
- --network #{network}
53
- --hostname #{host_name}
54
- --name #{@name}
55
- --env SIMPLESAMLPHP_SP_ENTITY_ID=#{@gitlab_host}/groups/#{@group}
56
- --env SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE=#{@gitlab_host}/groups/#{@group}/-/saml/callback
57
- --publish 8080:8080
58
- --publish 8443:8443
59
- #{@image}
60
- CMD
61
-
62
- command.gsub!("--network #{network} ", '') unless QA::Runtime::Env.running_in_ci?
63
-
64
- shell command
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,107 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'securerandom'
4
- require 'mkmf'
5
- require 'pathname'
6
-
7
- module QA
8
- module Service
9
- class KubernetesCluster
10
- include Service::Shellout
11
-
12
- attr_reader :api_url, :ca_certificate, :token, :rbac, :provider
13
-
14
- def initialize(rbac: true, provider_class: QA::Service::ClusterProvider::Gcloud)
15
- @rbac = rbac
16
- @provider = provider_class.new(rbac: rbac)
17
- end
18
-
19
- def create!
20
- validate_dependencies
21
-
22
- @provider.validate_dependencies
23
- @provider.setup
24
-
25
- @api_url = fetch_api_url
26
-
27
- credentials = @provider.filter_credentials(fetch_credentials)
28
- @ca_certificate = Base64.decode64(credentials.dig('data', 'ca.crt'))
29
- @token = Base64.decode64(credentials.dig('data', 'token'))
30
-
31
- self
32
- end
33
-
34
- def remove!
35
- @provider.teardown
36
- end
37
-
38
- def cluster_name
39
- @provider.cluster_name
40
- end
41
-
42
- def to_s
43
- cluster_name
44
- end
45
-
46
- private
47
-
48
- def fetch_api_url
49
- `kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}'`
50
- end
51
-
52
- def fetch_credentials
53
- return global_credentials unless rbac
54
-
55
- @provider.set_credentials(admin_user)
56
- create_service_account(admin_user)
57
- account_credentials
58
- end
59
-
60
- def admin_user
61
- @admin_user ||= "#{@provider.cluster_name}-admin"
62
- end
63
-
64
- def create_service_account(user)
65
- service_account = <<~YAML
66
- ---
67
- apiVersion: v1
68
- kind: ServiceAccount
69
- metadata:
70
- name: gitlab-account
71
- namespace: default
72
- ---
73
- kind: ClusterRoleBinding
74
- apiVersion: rbac.authorization.k8s.io/v1
75
- metadata:
76
- name: gitlab-account-binding
77
- subjects:
78
- - kind: ServiceAccount
79
- name: gitlab-account
80
- namespace: default
81
- roleRef:
82
- kind: ClusterRole
83
- name: cluster-admin
84
- apiGroup: rbac.authorization.k8s.io
85
- YAML
86
-
87
- shell('kubectl apply -f -', stdin_data: service_account)
88
- end
89
-
90
- def account_credentials
91
- secrets = JSON.parse(`kubectl get secrets -o json`)
92
-
93
- secrets['items'].find do |item|
94
- item['metadata']['annotations']['kubernetes.io/service-account.name'] == 'gitlab-account'
95
- end
96
- end
97
-
98
- def global_credentials
99
- JSON.parse(`kubectl get secrets -o jsonpath='{.items[0]}'`)
100
- end
101
-
102
- def validate_dependencies
103
- find_executable('kubectl') || raise("You must first install `kubectl` executable to run these tests.")
104
- end
105
- end
106
- end
107
- end