summaryrefslogtreecommitdiff
path: root/qa/qa/service/runner.rb
diff options
context:
space:
mode:
authorEugenia Grieff <egrieff@gitlab.com>2019-09-04 09:52:06 +0100
committerEugenia Grieff <egrieff@gitlab.com>2019-09-04 09:52:06 +0100
commita3b4d920ba7791739300a9dcde0d18897b13afcb (patch)
tree52433c6cb061d1999ec8e40546718ea182593ba2 /qa/qa/service/runner.rb
parent9039a937661ea7190d1615b9b0141504afbb75dc (diff)
parentfb9e8646bdb9f3f1382a86da890ff509f1b4549c (diff)
downloadgitlab-ce-60372-milestone-link-prevent-delete-issue-after-move-it-to-another-project-2.tar.gz
Merge branch 'master' into 60372-milestone-link-prevent-delete-issue-after-move-it-to-another-project-260372-milestone-link-prevent-delete-issue-after-move-it-to-another-project-2
Diffstat (limited to 'qa/qa/service/runner.rb')
-rw-r--r--qa/qa/service/runner.rb27
1 files changed, 25 insertions, 2 deletions
diff --git a/qa/qa/service/runner.rb b/qa/qa/service/runner.rb
index 03b234f7a56..6fc5984b12a 100644
--- a/qa/qa/service/runner.rb
+++ b/qa/qa/service/runner.rb
@@ -7,13 +7,25 @@ module QA
class Runner
include Service::Shellout
- attr_accessor :token, :address, :tags, :image
+ attr_accessor :token, :address, :tags, :image, :run_untagged
+ attr_writer :config
def initialize(name)
@image = 'gitlab/gitlab-runner:alpine'
@name = name || "qa-runner-#{SecureRandom.hex(4)}"
@network = Runtime::Scenario.attributes[:network] || 'test'
@tags = %w[qa test]
+ @run_untagged = false
+ end
+
+ def config
+ @config ||= <<~END
+ concurrent = 1
+ check_interval = 0
+
+ [session_server]
+ session_timeout = 1800
+ END
end
def network
@@ -32,19 +44,30 @@ module QA
shell <<~CMD.tr("\n", ' ')
docker run -d --rm --entrypoint=/bin/sh
--network #{network} --name #{@name}
+ -p 8093:8093
-e CI_SERVER_URL=#{@address}
-e REGISTER_NON_INTERACTIVE=true
-e REGISTRATION_TOKEN=#{@token}
-e RUNNER_EXECUTOR=shell
-e RUNNER_TAG_LIST=#{@tags.join(',')}
-e RUNNER_NAME=#{@name}
- #{@image} -c 'gitlab-runner register && gitlab-runner run'
+ #{@image} -c "#{register_command}"
CMD
end
def remove!
shell "docker rm -f #{@name}"
end
+
+ private
+
+ def register_command
+ <<~CMD
+ printf '#{config.chomp.gsub(/\n/, "\\n").gsub('"', '\"')}' > /etc/gitlab-runner/config.toml &&
+ gitlab-runner register --run-untagged=#{@run_untagged} &&
+ gitlab-runner run
+ CMD
+ end
end
end
end