Skip to content

Commit

Permalink
Merge pull request #147 from joelneubert/master
Browse files Browse the repository at this point in the history
get current build artifact
  • Loading branch information
arangamani committed Nov 5, 2014
2 parents 50d4874 + 08e5dc7 commit da43a0c
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
19 changes: 19 additions & 0 deletions lib/jenkins_api_client/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,25 @@ def inspect
" @http_read_timeout=#{@http_read_timeout.inspect}>"
end

# Connects to the server and downloads artifacts to a specified location
#
# @param [String] job_name
# @param [String] filename location to save artifact
#
def get_artifact(job_name,filename)
@artifact = job.find_artifact(job_name)
uri = URI.parse(@artifact)
http = Net::HTTP.new(uri.host, uri.port)
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
request.basic_auth(@username, @password)
response = http.request(request)
File.write(File.expand_path(filename), response.body) if response.code == "200"
rescue
raise "Response was not 200"
end

# Connects to the Jenkins server, sends the specified request and returns
# the response.
#
Expand Down
14 changes: 14 additions & 0 deletions lib/jenkins_api_client/job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1450,6 +1450,20 @@ def get_promotions(job_name)
result
end

#A Method to find artifacts path from the Current Build
#
# @param [String] job_name
#
def find_artifact(job_name)
current_build_number = get_current_build_number(job_name)
job_path = "job/#{path_encode job_name}/"
response_json = @client.api_get_request("/#{job_path}#{current_build_number}")
relative_build_path = response_json['artifacts'][0]['relativePath']
jenkins_path = response_json['url']
artifact_path = URI.escape("#{jenkins_path}artifact/#{relative_build_path}")
return artifact_path
end

private

# Obtains the threshold params used by jenkins in the XML file
Expand Down

0 comments on commit da43a0c

Please sign in to comment.