I am using a Perl script to trigger a build in Jenkins using LWP modules. This works but after executing the job, I would like to parse the console output.
Is there someway to get this?
Log into Jenkins and take a look at the bottom of the webpage near the right hand side and click on the REST API link. This will give you information about the Jenkins RESTful API which is a great way to pull information off of Jenkins once you understand how to construct the URL.
And, here's how you get the console text:
$ curl "${JENKINS_URL}/job/${JOB_NAME}/lastBuild/consoleText"
You can use Perl's various LWP modules to talk to Jenkins.
consoleText with consoleFull you'll get the log in HTML. You then need to parse that of course to extract the content. On Windows you can get that for free with Powershell. $resp = Invoke-Webrequest "$(JENKINS_URL)/job/$(JOB_NAME)/lastBuild/consoleFull" $resp.ParsedHtml.body.innerText > someFile.log (Powershell Core that is available also on Linux doesn't include ParsedHtml in the object due to a requirement to a MS DLL)${JENKINS_URL}/job/${JOB_NAME}/lastBuild/timestamps?appendLog&elapsed=HH:mm:ss.Stimestamps api method is provided by the Timestamper plugin. It also offers parameters like startLine, endLine, locale, etc.latestBuild indeed returns the previous build. I hate to add a sleep or something.If you want to access the log from another Jenkins job that runs on the master, you can do it from a chained (child) job without needing to send an http GET. See https://stackoverflow.com/a/41974193/1580627.
Use the Log Parser Plugin for Jenkins. Read the page number 24 here for the configuration and other details.