Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/service/docker_run/jenkins.rb')
-rw-r--r--qa/qa/service/docker_run/jenkins.rb43
1 files changed, 33 insertions, 10 deletions
diff --git a/qa/qa/service/docker_run/jenkins.rb b/qa/qa/service/docker_run/jenkins.rb
index 808fab80c63..88b69210382 100644
--- a/qa/qa/service/docker_run/jenkins.rb
+++ b/qa/qa/service/docker_run/jenkins.rb
@@ -4,11 +4,27 @@ module QA
module Service
module DockerRun
class Jenkins < Base
+ include Mixins::ThirdPartyDocker
+
+ attr_reader :port
+
def initialize
- @image = 'registry.gitlab.com/gitlab-org/gitlab-qa/jenkins-gitlab:version1'
+ @image = "#{third_party_repository}/jenkins:latest"
@name = 'jenkins-server'
@port = '8080'
- super()
+ super
+ end
+
+ def network
+ @network || 'test'
+ end
+
+ def username
+ Runtime::Env.jenkins_admin_username
+ end
+
+ def password
+ Runtime::Env.jenkins_admin_password
end
def host_address
@@ -16,30 +32,37 @@ module QA
end
def host_name
- if !QA::Runtime::Env.running_in_ci? && !runner_network.equal?('airgapped')
- 'localhost'
- end
+ return 'localhost' unless QA::Runtime::Env.running_in_ci?
super
end
def register!
+ authenticate_third_party
+
command = <<~CMD.tr("\n", ' ')
docker run -d --rm
--network #{network}
--hostname #{host_name}
--name #{@name}
- --env JENKINS_HOME=jenkins_home
+ --env JENKINS_USER=#{username}
+ --env JENKINS_PASS=#{password}
--publish #{@port}:8080
--publish 50000:50000
#{@image}
CMD
- if !QA::Runtime::Env.running_in_ci? && !runner_network.equal?('airgapped')
- command.gsub!("--network #{network} ", '')
- end
+ shell(command, mask_secrets: [password])
- shell command
+ wait_for_running
+ end
+
+ private
+
+ def wait_for_running
+ Support::Waiter.wait_until(max_duration: 10, reload_page: false, raise_on_failure: false) do
+ running?
+ end
end
end
end