gitlab-qa 5.10.1 → 5.12.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: 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