Skip to content

使用方法

通过如下命令获取gojenkins连接

如下命令可能是你最终使用场景的案例,用来完成一些实用的功能,下一章节我们将会详细讲解coding过程

go
package test

import (
	"context"
	"fmt"
	"github.com/bndr/gojenkins"
	"testing"
	"time"
)

func TestJks(t *testing.T) {
	ctx := context.Background()
	// 使用密钥方式创建jks连接
	jenkins := gojenkins.CreateJenkins(nil, "http://localhost:8080/", "admin", "admin")
	// 同样可以使用CA证书完成连接
	// caCert, _ := ioutil.ReadFile("/tmp/ca.crt")
	// jenkins.Requester.CACert = caCert
	_, err := jenkins.Init(ctx)
	
	if err != nil {
		panic("Something Went Wrong")
	}

	// 根据job任务的名称,编译并获取队列id
	queueid, err := jenkins.BuildJob(ctx, "#jobname", nil)
	if err != nil {
		panic(err)
	}
	// 根据队列id回去编译信息
	build, err := jenkins.GetBuildFromQueueID(ctx, queueid)
	if err != nil {
		panic(err)
	}
	//等待Job编译结束
	for build.IsRunning(ctx) {
		time.Sleep(5000 * time.Millisecond)
		//拉取编译数据
		build.Poll(ctx)
	}

	// 获取编译的#number 和编译是否成功的结果,SUCCESS or FAIL or STABLE
	fmt.Printf("build number %d with result: %v\n", build.GetBuildNumber(), build.GetResult())
}

更多案例请参阅下文案例章节