gitlab-qa 5.10.1 → 5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 297cdac7b635387a3149a943bf48838c7bbde039d5b1981c4298380c40a5f651
4
- data.tar.gz: 111bb1d4c02c51ef3865f6f2591b3e64b0deafe010ab8cf135c74bc0d54bf501
3
+ metadata.gz: ca0c9bc180dabbb9cba4984c2f19381d16ae57631e7ca308e38a3649d8d72dbf
4
+ data.tar.gz: '018c552b3d04932d581872c7ddb3d3199545a868884530e58d57ff0842528134'
5
5
  SHA512:
6
- metadata.gz: c890e876be1104ea0c068114a547767a2f408dd54c34a5cf82261a3c2bb8db2346909c15def2a5f162cd20bfdbb37f73b0db6b0036d753640ec8556b987c9192
7
- data.tar.gz: 8fcb78a7def6c94a94887ee0cb9ada4e478f7adaa46a1cf533d81244435e4fc61955fce033d8d9c294323b8b34077ff45a6428b92e4cf7afa76cb03f692b4594
6
+ metadata.gz: 2c1be4f5eab6dbefb4685dc03f7f12140cc442766f4ec86006a927aa95ae787be6065f762f0ff1b3d6f79ea3158464e9a5e33ac5c7790b75bc31ac3ed005ac19
7
+ data.tar.gz: abbff15cf25737e634429c22e3a704ec3f933656546243a92b408c6c55baa8056439a2f3a0c0ca1901a2e54f3e166ff16df307d61d6db109e35ed566c914b4dd
data/.gitlab-ci.yml CHANGED
@@ -848,6 +848,44 @@ ee:smtp:
848
848
  variables:
849
849
  QA_SCENARIO: "Test::Integration::SMTP"
850
850
 
851
+ ce:jira:
852
+ extends:
853
+ - .test
854
+ - .high-capacity
855
+ - .ce-qa
856
+ - .rspec-report-opts
857
+ variables:
858
+ QA_SCENARIO: "Test::Integration::Jira"
859
+
860
+ ce:jira-quarantine:
861
+ extends:
862
+ - .test
863
+ - .high-capacity
864
+ - .ce-qa
865
+ - .quarantine
866
+ - .rspec-report-opts
867
+ variables:
868
+ QA_SCENARIO: "Test::Integration::Jira"
869
+
870
+ ee:jira:
871
+ extends:
872
+ - .test
873
+ - .high-capacity
874
+ - .ee-qa
875
+ - .rspec-report-opts
876
+ variables:
877
+ QA_SCENARIO: "Test::Integration::Jira"
878
+
879
+ ee:jira-quarantine:
880
+ extends:
881
+ - .test
882
+ - .high-capacity
883
+ - .ee-qa
884
+ - .quarantine
885
+ - .rspec-report-opts
886
+ variables:
887
+ QA_SCENARIO: "Test::Integration::Jira"
888
+
851
889
  # This job requires the `GITLAB_QA_ACCESS_TOKEN` and `GITLAB_QA_DEV_ACCESS_TOKEN`
852
890
  # variable to be passed when triggered.
853
891
  staging:
@@ -80,6 +80,8 @@ For more details on the internals, please read the
80
80
  * `CI_SERVER_PERSONAL_ACCESS_TOKEN` - Personal access token of the server that is running the CI pipeline. This is used for pulling CI_RUNNER information in certain tests.
81
81
  * `GEO_MAX_FILE_REPLICATION_TIME` - maximum time that a test will wait for a replicated file to appear on a Geo secondary node (default 120 seconds)
82
82
  * `GEO_MAX_DB_REPLICATION_TIME` - maximum time that a test will wait for database data to appear on a Geo secondary node (default 120 seconds)
83
+ * `JIRA_ADMIN_USERNAME` - Username for authenticating with Jira server as admin.
84
+ * `JIRA_ADMIN_PASSWORD` - Password for authenticating with Jira server as admin.
83
85
 
84
86
  ## [Supported Remote Grid environment variables](./running_against_remote_grid.md)
85
87
 
@@ -470,6 +472,35 @@ Example:
470
472
  $ gitlab-qa Test::Integration::SMTP CE
471
473
  ```
472
474
 
475
+ ### `Test::Integration::Jira CE|EE|<full image address>`
476
+
477
+ This tests that a GitLab instance works as expected with an external
478
+ Jira server.
479
+ It starts up a Docker container for Jira Server and another container
480
+ for GitLab.
481
+
482
+ To run tests against the GitLab container, a GitLab QA (`gitlab/gitlab-qa`)
483
+ container is spun up and tests are run from it by running the
484
+ `Test::Integration::Jira` scenario.
485
+
486
+ **Required environment variables:**
487
+
488
+ - [For EE only] `EE_LICENSE`: A valid EE license.
489
+ - `JIRA_ADMIN_USERNAME`: Username for authenticating with Jira server as admin.
490
+ - `JIRA_ADMIN_PASSWORD`: Password for authenticating with Jira server as admin.
491
+
492
+ Example:
493
+
494
+ ```
495
+ $ export JIRA_ADMIN_USERNAME=<jira_admin_username>
496
+ $ export JIRA_ADMIN_PASSWORD=<jira_admin_password>
497
+
498
+ # For EE
499
+ $ export EE_LICENSE=$(cat /path/to/GitLab.gitlab_license)
500
+
501
+ $ gitlab-qa Test::Integration::Jira EE
502
+ ```
503
+
473
504
  ### `Test::Instance::Any CE|EE|<full image address>:nightly|latest|any_tag http://your.instance.gitlab`
474
505
 
475
506
  This tests that a live GitLab instance works as expected by running tests
@@ -0,0 +1,73 @@
1
+ module Gitlab
2
+ module QA
3
+ module Component
4
+ class Jira
5
+ include Scenario::Actable
6
+
7
+ JIRA_IMAGE = 'registry.gitlab.com/gitlab-org/gitlab-qa/jira-gitlab'.freeze
8
+ JIRA_IMAGE_TAG = '8.8-project-and-issue'.freeze
9
+
10
+ attr_reader :docker
11
+ attr_accessor :environment, :network
12
+ attr_writer :name
13
+
14
+ def initialize
15
+ @docker = Docker::Engine.new
16
+ @environment = {}
17
+ end
18
+
19
+ def name
20
+ @name ||= "jira"
21
+ end
22
+
23
+ def hostname
24
+ "#{name}.#{network}"
25
+ end
26
+
27
+ def instance
28
+ raise 'Please provide a block!' unless block_given?
29
+
30
+ prepare
31
+ start
32
+
33
+ yield self
34
+ ensure
35
+ teardown
36
+ end
37
+
38
+ def prepare
39
+ @docker.pull(JIRA_IMAGE, JIRA_IMAGE_TAG)
40
+
41
+ return if @docker.network_exists?(network)
42
+
43
+ @docker.network_create(network)
44
+ end
45
+
46
+ def start
47
+ docker.run(JIRA_IMAGE, JIRA_IMAGE_TAG) do |command|
48
+ command << '-d '
49
+ command << "--name #{name}"
50
+ command << "--net #{network}"
51
+ command << "--hostname #{hostname}"
52
+ command << "--publish 8080:8080"
53
+ end
54
+ end
55
+
56
+ def restart
57
+ @docker.restart(name)
58
+ end
59
+
60
+ def teardown
61
+ raise 'Invalid instance name!' unless name
62
+
63
+ @docker.stop(name)
64
+ @docker.remove(name)
65
+ end
66
+
67
+ def set_jira_hostname
68
+ ::Gitlab::QA::Runtime::Env.jira_hostname = hostname
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -74,7 +74,10 @@ module Gitlab
74
74
  'SLACK_ICON_EMOJI' => :slack_icon_emoji,
75
75
  'GITLAB_QA_FORMLESS_LOGIN_TOKEN' => :gitlab_qa_formless_login_token,
76
76
  'GEO_MAX_FILE_REPLICATION_TIME' => :geo_max_file_replication_time,
77
- 'GEO_MAX_DB_REPLICATION_TIME' => :geo_max_db_replication_time
77
+ 'GEO_MAX_DB_REPLICATION_TIME' => :geo_max_db_replication_time,
78
+ 'JIRA_HOSTNAME' => :jira_hostname,
79
+ 'JIRA_ADMIN_USERNAME' => :jira_admin_username,
80
+ 'JIRA_ADMIN_PASSWORD' => :jira_admin_password
78
81
  }.freeze
79
82
 
80
83
  ENV_VARIABLES.each_value do |accessor|
@@ -0,0 +1,40 @@
1
+ module Gitlab
2
+ module QA
3
+ module Scenario
4
+ module Test
5
+ module Integration
6
+ class Jira < Scenario::Template
7
+ def perform(release, *rspec_args)
8
+ Component::Gitlab.perform do |gitlab|
9
+ gitlab.release = Release.new(release)
10
+ gitlab.network = 'test'
11
+ gitlab.name = 'gitlab-jira'
12
+
13
+ Component::Jira.perform do |jira|
14
+ jira.network = gitlab.network
15
+ jira.set_jira_hostname
16
+
17
+ jira.instance do
18
+ gitlab.instance do
19
+ puts 'Running Jira specs!'
20
+
21
+ rspec_args << "--" unless rspec_args.include?('--')
22
+ rspec_args << %w[--tag jira]
23
+
24
+ Component::Specs.perform do |specs|
25
+ specs.suite = 'Test::Instance::All'
26
+ specs.release = gitlab.release
27
+ specs.network = gitlab.network
28
+ specs.args = [gitlab.address, *rspec_args]
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '5.10.1'.freeze
3
+ VERSION = '5.12.0'.freeze
4
4
  end
5
5
  end
data/lib/gitlab/qa.rb CHANGED
@@ -52,6 +52,7 @@ module Gitlab
52
52
  autoload :Elasticsearch, 'gitlab/qa/scenario/test/integration/elasticsearch'
53
53
  autoload :SMTP, 'gitlab/qa/scenario/test/integration/smtp'
54
54
  autoload :GitalyHA, 'gitlab/qa/scenario/test/integration/gitaly_ha'
55
+ autoload :Jira, 'gitlab/qa/scenario/test/integration/jira'
55
56
  end
56
57
 
57
58
  module Sanity
@@ -72,6 +73,7 @@ module Gitlab
72
73
  autoload :Preprod, 'gitlab/qa/component/preprod'
73
74
  autoload :Elasticsearch, 'gitlab/qa/component/elasticsearch'
74
75
  autoload :MailHog, 'gitlab/qa/component/mail_hog'
76
+ autoload :Jira, 'gitlab/qa/component/jira'
75
77
  autoload :PostgreSQL, 'gitlab/qa/component/postgresql'
76
78
  end
77
79
 
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: 5.10.1
4
+ version: 5.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grzegorz Bizon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-12 00:00:00.000000000 Z
11
+ date: 2020-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -240,6 +240,7 @@ files:
240
240
  - lib/gitlab/qa/component/elasticsearch.rb
241
241
  - lib/gitlab/qa/component/gitlab.rb
242
242
  - lib/gitlab/qa/component/internet_tunnel.rb
243
+ - lib/gitlab/qa/component/jira.rb
243
244
  - lib/gitlab/qa/component/ldap.rb
244
245
  - lib/gitlab/qa/component/mail_hog.rb
245
246
  - lib/gitlab/qa/component/minio.rb
@@ -281,6 +282,7 @@ files:
281
282
  - lib/gitlab/qa/scenario/test/integration/gitaly_ha.rb
282
283
  - lib/gitlab/qa/scenario/test/integration/group_saml.rb
283
284
  - lib/gitlab/qa/scenario/test/integration/instance_saml.rb
285
+ - lib/gitlab/qa/scenario/test/integration/jira.rb
284
286
  - lib/gitlab/qa/scenario/test/integration/kubernetes.rb
285
287
  - lib/gitlab/qa/scenario/test/integration/ldap.rb
286
288
  - lib/gitlab/qa/scenario/test/integration/ldap_no_server.rb