提交 ee8c7a87 编写于 作者: LinuxSuRen's avatar LinuxSuRen

Add option for build history

上级 6855472a
......@@ -9,12 +9,14 @@ import (
)
type JobLogOption struct {
History int
}
var jobLogOption JobLogOption
func init() {
jobCmd.AddCommand(jobLogCmd)
jobLogCmd.PersistentFlags().IntVarP(&jobLogOption.History, "history", "s", -1, "Specific build history of log")
}
var jobLogCmd = &cobra.Command{
......@@ -34,15 +36,15 @@ var jobLogCmd = &cobra.Command{
jclient.Proxy = jenkins.Proxy
jclient.ProxyAuth = jenkins.ProxyAuth
printLog(jclient, jobOption.Name, 0)
printLog(jclient, jobOption.Name, jobLogOption.History, 0)
},
}
func printLog(jclient *client.JobClient, jobName string, start int64) {
if status, err := jclient.Log(jobName, start); err == nil {
func printLog(jclient *client.JobClient, jobName string, history int, start int64) {
if status, err := jclient.Log(jobName, history, start); err == nil {
fmt.Print(status.Text)
if status.HasMore {
printLog(jclient, jobName, status.NextStart)
printLog(jclient, jobName, history, status.NextStart)
}
} else {
log.Fatal(err)
......
......@@ -134,14 +134,19 @@ func (q *JobClient) GetHistory(name string) (builds []JobBuild, err error) {
}
// Log get the log of a job
func (q *JobClient) Log(jobName string, start int64) (jobLog JobLog, err error) {
func (q *JobClient) Log(jobName string, history int, start int64) (jobLog JobLog, err error) {
jobItems := strings.Split(jobName, " ")
path := ""
for _, item := range jobItems {
path = fmt.Sprintf("%s/job/%s", path, item)
}
api := fmt.Sprintf("%s/%s/lastBuild/logText/progressiveText?start=%d", q.URL, path, start)
var api string
if history == -1 {
api = fmt.Sprintf("%s/%s/lastBuild/logText/progressiveText?start=%d", q.URL, path, start)
} else {
api = fmt.Sprintf("%s/%s/%d/logText/progressiveText?start=%d", q.URL, path, history, start)
}
var (
req *http.Request
response *http.Response
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册