summaryrefslogtreecommitdiff
path: root/qa/qa/factory
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2018-01-25 09:55:39 +0000
committerRémy Coutable <remy@rymai.me>2018-01-25 09:55:39 +0000
commitdcb79741a170eaf673237bb2becbf6fb742a8bfd (patch)
tree537e0a23eb73fd386fb4d5fa6303ce13f37e3a1d /qa/qa/factory
parent944c1eb684fe979339262ba6e9f7bf9e1b77fc81 (diff)
parent5bead3e29965ec26ccf3320d65a5757d673d9958 (diff)
downloadgitlab-ce-dcb79741a170eaf673237bb2becbf6fb742a8bfd.tar.gz
Merge branch 'qa/gb/ci-cd-qa-pipelines' into 'master'
CI/CD end-to-end tests Closes gitlab-qa#18 See merge request gitlab-org/gitlab-ce!16619
Diffstat (limited to 'qa/qa/factory')
-rw-r--r--qa/qa/factory/resource/deploy_key.rb2
-rw-r--r--qa/qa/factory/resource/runner.rb42
2 files changed, 43 insertions, 1 deletions
diff --git a/qa/qa/factory/resource/deploy_key.rb b/qa/qa/factory/resource/deploy_key.rb
index 671114d38b1..25d2af6e321 100644
--- a/qa/qa/factory/resource/deploy_key.rb
+++ b/qa/qa/factory/resource/deploy_key.rb
@@ -19,7 +19,7 @@ module QA
project.visit!
Page::Menu::Side.act do
- click_repository_setting
+ click_repository_settings
end
Page::Project::Settings::Repository.perform do |setting|
diff --git a/qa/qa/factory/resource/runner.rb b/qa/qa/factory/resource/runner.rb
new file mode 100644
index 00000000000..5f37f8ac2e9
--- /dev/null
+++ b/qa/qa/factory/resource/runner.rb
@@ -0,0 +1,42 @@
+require 'securerandom'
+
+module QA
+ module Factory
+ module Resource
+ class Runner < Factory::Base
+ attr_writer :name, :tags
+
+ dependency Factory::Resource::Project, as: :project do |project|
+ project.name = 'project-with-ci-cd'
+ project.description = 'Project with CI/CD Pipelines'
+ end
+
+ def name
+ @name || "qa-runner-#{SecureRandom.hex(4)}"
+ end
+
+ def tags
+ @tags || %w[qa e2e]
+ end
+
+ def fabricate!
+ project.visit!
+
+ Page::Menu::Side.act { click_ci_cd_settings }
+
+ Service::Runner.new(name).tap do |runner|
+ Page::Project::Settings::CICD.perform do |settings|
+ settings.expand_runners_settings do |runners|
+ runner.pull
+ runner.token = runners.registration_token
+ runner.address = runners.coordinator_address
+ runner.tags = tags
+ runner.register!
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end