问题描述
如何使用 Jenkins REST API 获取作业的详细信息及其控制台输出
构建示例
控制台输出:
我正在使用以下命令来获取控制台日志的路径
回显 $JENKINS_HOME/jobs/$JOB_NAME/builds/${BUILD_NUMBER}/log
回显 $BUILD_URL/consoleText
它将提供控制台日志的路径
所以对于使用 consoleFull
,我使用 curl 得到了非常 dirty 的输出代码>
示例:
curl -s -S -u "user":"password" "http://jenkins.domain.com/job/my_job_name/1077/consoleFull"
输出:许多行都用 html 东西包裹:
<span class="timestamp"><b>09:04:32</b></span><span style="color:#00CD00;">ok:</span>
所以我的解决方案是使用:
curl -s -S -u "user":"password" "http://jenkins.domain.com/job/my_job_name/1077/logText/progressiveText?start=0"
您将获得相同的控制台日志输出,而无需 html、span 内容
How to get the details of the job along with it console output using Jenkins REST API
example of builds
console output:
I am using following commands to get the path of console log
echo $JENKINS_HOME/jobs/$JOB_NAME/builds/${BUILD_NUMBER}/log
echo $BUILD_URL/consoleText
It would provide the path to console log
http://localhost:8080/job/Echo/25//consoleText
but if i try to get the data from it using c#.net it would through me a exception
I am using following code to get the data
public string Download_Contents(string URI)
{
string Data = string.Empty;
try
{
using (var wc = new System.Net.WebClient())
Data = wc.DownloadString(URI);
}
catch (Exception ex)
{
throw ex;
}
return Data;
}
Exception:
So for using the consoleFull
i'm getting very dirty output using curl
example:
curl -s -S -u "user":"password" "http://jenkins.domain.com/job/my_job_name/1077/consoleFull"
output: many lines wrapped with html stuff:
<span class="timestamp"><b>09:04:32</b> </span><span style="color: #00CD00;">ok:</span>
so my solution is to use:
curl -s -S -u "user":"password" "http://jenkins.domain.com/job/my_job_name/1077/logText/progressiveText?start=0"
and you will get the same console log output without the html,span stuff
这篇关于Jenkins REST API 获取作业和作业控制台日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!