mirror of
https://github.com/jenkinsci/kubernetes-operator.git
synced 2026-10-18 23:40:31 +02:00
Add tests for jobs + mockgen for jenkins client
This commit is contained in:
@@ -0,0 +1,609 @@
|
||||
// Code generated by MockGen. DO NOT EDIT.
|
||||
// Source: /home/bartek/go/src/github.com/VirtusLab/jenkins-operator/pkg/controller/jenkins/client/jenkins.go
|
||||
|
||||
// Package mock_client is a generated GoMock package.
|
||||
package client
|
||||
|
||||
import (
|
||||
"github.com/bndr/gojenkins"
|
||||
"github.com/golang/mock/gomock"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
// MockJenkins is a mock of Jenkins interface
|
||||
type MockJenkins struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockJenkinsMockRecorder
|
||||
}
|
||||
|
||||
// MockJenkinsMockRecorder is the mock recorder for MockJenkins
|
||||
type MockJenkinsMockRecorder struct {
|
||||
mock *MockJenkins
|
||||
}
|
||||
|
||||
// NewMockJenkins creates a new mock instance
|
||||
func NewMockJenkins(ctrl *gomock.Controller) *MockJenkins {
|
||||
mock := &MockJenkins{ctrl: ctrl}
|
||||
mock.recorder = &MockJenkinsMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use
|
||||
func (m *MockJenkins) EXPECT() *MockJenkinsMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// GenerateToken mocks base method
|
||||
func (m *MockJenkins) GenerateToken(userName, tokenName string) (*UserToken, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GenerateToken", userName, tokenName)
|
||||
ret0, _ := ret[0].(*UserToken)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GenerateToken indicates an expected call of GenerateToken
|
||||
func (mr *MockJenkinsMockRecorder) GenerateToken(userName, tokenName interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateToken", reflect.TypeOf((*MockJenkins)(nil).GenerateToken), userName, tokenName)
|
||||
}
|
||||
|
||||
// Info mocks base method
|
||||
func (m *MockJenkins) Info() (*gojenkins.ExecutorResponse, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Info")
|
||||
ret0, _ := ret[0].(*gojenkins.ExecutorResponse)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// Info indicates an expected call of Info
|
||||
func (mr *MockJenkinsMockRecorder) Info() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Info", reflect.TypeOf((*MockJenkins)(nil).Info))
|
||||
}
|
||||
|
||||
// SafeRestart mocks base method
|
||||
func (m *MockJenkins) SafeRestart() error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "SafeRestart")
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// SafeRestart indicates an expected call of SafeRestart
|
||||
func (mr *MockJenkinsMockRecorder) SafeRestart() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SafeRestart", reflect.TypeOf((*MockJenkins)(nil).SafeRestart))
|
||||
}
|
||||
|
||||
// CreateNode mocks base method
|
||||
func (m *MockJenkins) CreateNode(name string, numExecutors int, description, remoteFS, label string, options ...interface{}) (*gojenkins.Node, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{name, numExecutors, description, remoteFS, label}
|
||||
for _, a := range options {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "CreateNode", varargs...)
|
||||
ret0, _ := ret[0].(*gojenkins.Node)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CreateNode indicates an expected call of CreateNode
|
||||
func (mr *MockJenkinsMockRecorder) CreateNode(name, numExecutors, description, remoteFS, label interface{}, options ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{name, numExecutors, description, remoteFS, label}, options...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNode", reflect.TypeOf((*MockJenkins)(nil).CreateNode), varargs...)
|
||||
}
|
||||
|
||||
// DeleteNode mocks base method
|
||||
func (m *MockJenkins) DeleteNode(name string) (bool, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "DeleteNode", name)
|
||||
ret0, _ := ret[0].(bool)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// DeleteNode indicates an expected call of DeleteNode
|
||||
func (mr *MockJenkinsMockRecorder) DeleteNode(name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNode", reflect.TypeOf((*MockJenkins)(nil).DeleteNode), name)
|
||||
}
|
||||
|
||||
// CreateFolder mocks base method
|
||||
func (m *MockJenkins) CreateFolder(name string, parents ...string) (*gojenkins.Folder, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{name}
|
||||
for _, a := range parents {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "CreateFolder", varargs...)
|
||||
ret0, _ := ret[0].(*gojenkins.Folder)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CreateFolder indicates an expected call of CreateFolder
|
||||
func (mr *MockJenkinsMockRecorder) CreateFolder(name interface{}, parents ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{name}, parents...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateFolder", reflect.TypeOf((*MockJenkins)(nil).CreateFolder), varargs...)
|
||||
}
|
||||
|
||||
// CreateJobInFolder mocks base method
|
||||
func (m *MockJenkins) CreateJobInFolder(config, jobName string, parentIDs ...string) (*gojenkins.Job, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{config, jobName}
|
||||
for _, a := range parentIDs {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "CreateJobInFolder", varargs...)
|
||||
ret0, _ := ret[0].(*gojenkins.Job)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CreateJobInFolder indicates an expected call of CreateJobInFolder
|
||||
func (mr *MockJenkinsMockRecorder) CreateJobInFolder(config, jobName interface{}, parentIDs ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{config, jobName}, parentIDs...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateJobInFolder", reflect.TypeOf((*MockJenkins)(nil).CreateJobInFolder), varargs...)
|
||||
}
|
||||
|
||||
// CreateJob mocks base method
|
||||
func (m *MockJenkins) CreateJob(config string, options ...interface{}) (*gojenkins.Job, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{config}
|
||||
for _, a := range options {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "CreateJob", varargs...)
|
||||
ret0, _ := ret[0].(*gojenkins.Job)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CreateJob indicates an expected call of CreateJob
|
||||
func (mr *MockJenkinsMockRecorder) CreateJob(config interface{}, options ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{config}, options...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateJob", reflect.TypeOf((*MockJenkins)(nil).CreateJob), varargs...)
|
||||
}
|
||||
|
||||
// CreateOrUpdateJob mocks base method
|
||||
func (m *MockJenkins) CreateOrUpdateJob(config string, options ...interface{}) (*gojenkins.Job, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{config}
|
||||
for _, a := range options {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "CreateOrUpdateJob", varargs...)
|
||||
ret0, _ := ret[0].(*gojenkins.Job)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CreateOrUpdateJob indicates an expected call of CreateOrUpdateJob
|
||||
func (mr *MockJenkinsMockRecorder) CreateOrUpdateJob(config interface{}, options ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{config}, options...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateOrUpdateJob", reflect.TypeOf((*MockJenkins)(nil).CreateOrUpdateJob), varargs...)
|
||||
}
|
||||
|
||||
// RenameJob mocks base method
|
||||
func (m *MockJenkins) RenameJob(job, name string) *gojenkins.Job {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "RenameJob", job, name)
|
||||
ret0, _ := ret[0].(*gojenkins.Job)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// RenameJob indicates an expected call of RenameJob
|
||||
func (mr *MockJenkinsMockRecorder) RenameJob(job, name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RenameJob", reflect.TypeOf((*MockJenkins)(nil).RenameJob), job, name)
|
||||
}
|
||||
|
||||
// CopyJob mocks base method
|
||||
func (m *MockJenkins) CopyJob(copyFrom, newName string) (*gojenkins.Job, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "CopyJob", copyFrom, newName)
|
||||
ret0, _ := ret[0].(*gojenkins.Job)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CopyJob indicates an expected call of CopyJob
|
||||
func (mr *MockJenkinsMockRecorder) CopyJob(copyFrom, newName interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopyJob", reflect.TypeOf((*MockJenkins)(nil).CopyJob), copyFrom, newName)
|
||||
}
|
||||
|
||||
// DeleteJob mocks base method
|
||||
func (m *MockJenkins) DeleteJob(name string) (bool, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "DeleteJob", name)
|
||||
ret0, _ := ret[0].(bool)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// DeleteJob indicates an expected call of DeleteJob
|
||||
func (mr *MockJenkinsMockRecorder) DeleteJob(name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteJob", reflect.TypeOf((*MockJenkins)(nil).DeleteJob), name)
|
||||
}
|
||||
|
||||
// BuildJob mocks base method
|
||||
func (m *MockJenkins) BuildJob(name string, options ...interface{}) (int64, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{name}
|
||||
for _, a := range options {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "BuildJob", varargs...)
|
||||
ret0, _ := ret[0].(int64)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// BuildJob indicates an expected call of BuildJob
|
||||
func (mr *MockJenkinsMockRecorder) BuildJob(name interface{}, options ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{name}, options...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildJob", reflect.TypeOf((*MockJenkins)(nil).BuildJob), varargs...)
|
||||
}
|
||||
|
||||
// GetNode mocks base method
|
||||
func (m *MockJenkins) GetNode(name string) (*gojenkins.Node, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetNode", name)
|
||||
ret0, _ := ret[0].(*gojenkins.Node)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetNode indicates an expected call of GetNode
|
||||
func (mr *MockJenkinsMockRecorder) GetNode(name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNode", reflect.TypeOf((*MockJenkins)(nil).GetNode), name)
|
||||
}
|
||||
|
||||
// GetLabel mocks base method
|
||||
func (m *MockJenkins) GetLabel(name string) (*gojenkins.Label, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetLabel", name)
|
||||
ret0, _ := ret[0].(*gojenkins.Label)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetLabel indicates an expected call of GetLabel
|
||||
func (mr *MockJenkinsMockRecorder) GetLabel(name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLabel", reflect.TypeOf((*MockJenkins)(nil).GetLabel), name)
|
||||
}
|
||||
|
||||
// GetBuild mocks base method
|
||||
func (m *MockJenkins) GetBuild(jobName string, number int64) (*gojenkins.Build, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetBuild", jobName, number)
|
||||
ret0, _ := ret[0].(*gojenkins.Build)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetBuild indicates an expected call of GetBuild
|
||||
func (mr *MockJenkinsMockRecorder) GetBuild(jobName, number interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBuild", reflect.TypeOf((*MockJenkins)(nil).GetBuild), jobName, number)
|
||||
}
|
||||
|
||||
// GetJob mocks base method
|
||||
func (m *MockJenkins) GetJob(id string, parentIDs ...string) (*gojenkins.Job, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{id}
|
||||
for _, a := range parentIDs {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "GetJob", varargs...)
|
||||
ret0, _ := ret[0].(*gojenkins.Job)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetJob indicates an expected call of GetJob
|
||||
func (mr *MockJenkinsMockRecorder) GetJob(id interface{}, parentIDs ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{id}, parentIDs...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetJob", reflect.TypeOf((*MockJenkins)(nil).GetJob), varargs...)
|
||||
}
|
||||
|
||||
// GetSubJob mocks base method
|
||||
func (m *MockJenkins) GetSubJob(parentID, childID string) (*gojenkins.Job, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetSubJob", parentID, childID)
|
||||
ret0, _ := ret[0].(*gojenkins.Job)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetSubJob indicates an expected call of GetSubJob
|
||||
func (mr *MockJenkinsMockRecorder) GetSubJob(parentID, childID interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSubJob", reflect.TypeOf((*MockJenkins)(nil).GetSubJob), parentID, childID)
|
||||
}
|
||||
|
||||
// GetFolder mocks base method
|
||||
func (m *MockJenkins) GetFolder(id string, parents ...string) (*gojenkins.Folder, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{id}
|
||||
for _, a := range parents {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "GetFolder", varargs...)
|
||||
ret0, _ := ret[0].(*gojenkins.Folder)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetFolder indicates an expected call of GetFolder
|
||||
func (mr *MockJenkinsMockRecorder) GetFolder(id interface{}, parents ...interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
varargs := append([]interface{}{id}, parents...)
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFolder", reflect.TypeOf((*MockJenkins)(nil).GetFolder), varargs...)
|
||||
}
|
||||
|
||||
// GetAllNodes mocks base method
|
||||
func (m *MockJenkins) GetAllNodes() ([]*gojenkins.Node, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetAllNodes")
|
||||
ret0, _ := ret[0].([]*gojenkins.Node)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetAllNodes indicates an expected call of GetAllNodes
|
||||
func (mr *MockJenkinsMockRecorder) GetAllNodes() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllNodes", reflect.TypeOf((*MockJenkins)(nil).GetAllNodes))
|
||||
}
|
||||
|
||||
// GetAllBuildIds mocks base method
|
||||
func (m *MockJenkins) GetAllBuildIds(job string) ([]gojenkins.JobBuild, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetAllBuildIds", job)
|
||||
ret0, _ := ret[0].([]gojenkins.JobBuild)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetAllBuildIds indicates an expected call of GetAllBuildIds
|
||||
func (mr *MockJenkinsMockRecorder) GetAllBuildIds(job interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllBuildIds", reflect.TypeOf((*MockJenkins)(nil).GetAllBuildIds), job)
|
||||
}
|
||||
|
||||
// GetAllJobNames mocks base method
|
||||
func (m *MockJenkins) GetAllJobNames() ([]gojenkins.InnerJob, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetAllJobNames")
|
||||
ret0, _ := ret[0].([]gojenkins.InnerJob)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetAllJobNames indicates an expected call of GetAllJobNames
|
||||
func (mr *MockJenkinsMockRecorder) GetAllJobNames() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllJobNames", reflect.TypeOf((*MockJenkins)(nil).GetAllJobNames))
|
||||
}
|
||||
|
||||
// GetAllJobs mocks base method
|
||||
func (m *MockJenkins) GetAllJobs() ([]*gojenkins.Job, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetAllJobs")
|
||||
ret0, _ := ret[0].([]*gojenkins.Job)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetAllJobs indicates an expected call of GetAllJobs
|
||||
func (mr *MockJenkinsMockRecorder) GetAllJobs() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllJobs", reflect.TypeOf((*MockJenkins)(nil).GetAllJobs))
|
||||
}
|
||||
|
||||
// GetQueue mocks base method
|
||||
func (m *MockJenkins) GetQueue() (*gojenkins.Queue, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetQueue")
|
||||
ret0, _ := ret[0].(*gojenkins.Queue)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetQueue indicates an expected call of GetQueue
|
||||
func (mr *MockJenkinsMockRecorder) GetQueue() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueue", reflect.TypeOf((*MockJenkins)(nil).GetQueue))
|
||||
}
|
||||
|
||||
// GetQueueUrl mocks base method
|
||||
func (m *MockJenkins) GetQueueUrl() string {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetQueueUrl")
|
||||
ret0, _ := ret[0].(string)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// GetQueueUrl indicates an expected call of GetQueueUrl
|
||||
func (mr *MockJenkinsMockRecorder) GetQueueUrl() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueueUrl", reflect.TypeOf((*MockJenkins)(nil).GetQueueUrl))
|
||||
}
|
||||
|
||||
// GetQueueItem mocks base method
|
||||
func (m *MockJenkins) GetQueueItem(id int64) (*gojenkins.Task, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetQueueItem", id)
|
||||
ret0, _ := ret[0].(*gojenkins.Task)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetQueueItem indicates an expected call of GetQueueItem
|
||||
func (mr *MockJenkinsMockRecorder) GetQueueItem(id interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetQueueItem", reflect.TypeOf((*MockJenkins)(nil).GetQueueItem), id)
|
||||
}
|
||||
|
||||
// GetArtifactData mocks base method
|
||||
func (m *MockJenkins) GetArtifactData(id string) (*gojenkins.FingerPrintResponse, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetArtifactData", id)
|
||||
ret0, _ := ret[0].(*gojenkins.FingerPrintResponse)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetArtifactData indicates an expected call of GetArtifactData
|
||||
func (mr *MockJenkinsMockRecorder) GetArtifactData(id interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetArtifactData", reflect.TypeOf((*MockJenkins)(nil).GetArtifactData), id)
|
||||
}
|
||||
|
||||
// GetPlugins mocks base method
|
||||
func (m *MockJenkins) GetPlugins(depth int) (*gojenkins.Plugins, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetPlugins", depth)
|
||||
ret0, _ := ret[0].(*gojenkins.Plugins)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetPlugins indicates an expected call of GetPlugins
|
||||
func (mr *MockJenkinsMockRecorder) GetPlugins(depth interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPlugins", reflect.TypeOf((*MockJenkins)(nil).GetPlugins), depth)
|
||||
}
|
||||
|
||||
// UninstallPlugin mocks base method
|
||||
func (m *MockJenkins) UninstallPlugin(name string) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "UninstallPlugin", name)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// UninstallPlugin indicates an expected call of UninstallPlugin
|
||||
func (mr *MockJenkinsMockRecorder) UninstallPlugin(name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UninstallPlugin", reflect.TypeOf((*MockJenkins)(nil).UninstallPlugin), name)
|
||||
}
|
||||
|
||||
// HasPlugin mocks base method
|
||||
func (m *MockJenkins) HasPlugin(name string) (*gojenkins.Plugin, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "HasPlugin", name)
|
||||
ret0, _ := ret[0].(*gojenkins.Plugin)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// HasPlugin indicates an expected call of HasPlugin
|
||||
func (mr *MockJenkinsMockRecorder) HasPlugin(name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasPlugin", reflect.TypeOf((*MockJenkins)(nil).HasPlugin), name)
|
||||
}
|
||||
|
||||
// InstallPlugin mocks base method
|
||||
func (m *MockJenkins) InstallPlugin(name, version string) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "InstallPlugin", name, version)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// InstallPlugin indicates an expected call of InstallPlugin
|
||||
func (mr *MockJenkinsMockRecorder) InstallPlugin(name, version interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InstallPlugin", reflect.TypeOf((*MockJenkins)(nil).InstallPlugin), name, version)
|
||||
}
|
||||
|
||||
// ValidateFingerPrint mocks base method
|
||||
func (m *MockJenkins) ValidateFingerPrint(id string) (bool, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "ValidateFingerPrint", id)
|
||||
ret0, _ := ret[0].(bool)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// ValidateFingerPrint indicates an expected call of ValidateFingerPrint
|
||||
func (mr *MockJenkinsMockRecorder) ValidateFingerPrint(id interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateFingerPrint", reflect.TypeOf((*MockJenkins)(nil).ValidateFingerPrint), id)
|
||||
}
|
||||
|
||||
// GetView mocks base method
|
||||
func (m *MockJenkins) GetView(name string) (*gojenkins.View, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetView", name)
|
||||
ret0, _ := ret[0].(*gojenkins.View)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetView indicates an expected call of GetView
|
||||
func (mr *MockJenkinsMockRecorder) GetView(name interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetView", reflect.TypeOf((*MockJenkins)(nil).GetView), name)
|
||||
}
|
||||
|
||||
// GetAllViews mocks base method
|
||||
func (m *MockJenkins) GetAllViews() ([]*gojenkins.View, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetAllViews")
|
||||
ret0, _ := ret[0].([]*gojenkins.View)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetAllViews indicates an expected call of GetAllViews
|
||||
func (mr *MockJenkinsMockRecorder) GetAllViews() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllViews", reflect.TypeOf((*MockJenkins)(nil).GetAllViews))
|
||||
}
|
||||
|
||||
// CreateView mocks base method
|
||||
func (m *MockJenkins) CreateView(name, viewType string) (*gojenkins.View, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "CreateView", name, viewType)
|
||||
ret0, _ := ret[0].(*gojenkins.View)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CreateView indicates an expected call of CreateView
|
||||
func (mr *MockJenkinsMockRecorder) CreateView(name, viewType interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateView", reflect.TypeOf((*MockJenkins)(nil).CreateView), name, viewType)
|
||||
}
|
||||
|
||||
// Poll mocks base method
|
||||
func (m *MockJenkins) Poll() (int, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Poll")
|
||||
ret0, _ := ret[0].(int)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// Poll indicates an expected call of Poll
|
||||
func (mr *MockJenkinsMockRecorder) Poll() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Poll", reflect.TypeOf((*MockJenkins)(nil).Poll))
|
||||
}
|
||||
@@ -41,7 +41,7 @@ var (
|
||||
// ErrorBuildFailed - this is custom error returned when jenkins build has failed
|
||||
ErrorBuildFailed = errors.New("build failed")
|
||||
// ErrorAbortBuildFailed - this is custom error returned when jenkins build couldn't be aborted
|
||||
ErrorAbortBuildFailed = errors.New("build failed")
|
||||
ErrorAbortBuildFailed = errors.New("build abort failed")
|
||||
// ErrorUncoverBuildFailed - this is custom error returned when jenkins build has failed and cannot be recovered
|
||||
ErrorUncoverBuildFailed = errors.New("build failed and cannot be recovered")
|
||||
// ErrorNotFound - this is error returned when jenkins build couldn't be found
|
||||
@@ -96,7 +96,13 @@ func (jobs *Jobs) EnsureBuildJob(name, hash string, parameters map[string]string
|
||||
|
||||
// build is run first time - build job and update status
|
||||
jobs.logger.Info(fmt.Sprintf("Build doesn't exist, running and updating status, name:'%s' hash:'%s'", name, hash))
|
||||
return jobs.buildJob(name, hash, parameters, jenkins)
|
||||
created := metav1.Now()
|
||||
newBuild := virtuslabv1alpha1.Build{
|
||||
Name: name,
|
||||
Hash: hash,
|
||||
CreateTime: &created,
|
||||
}
|
||||
return jobs.buildJob(newBuild, parameters, jenkins)
|
||||
}
|
||||
|
||||
func (jobs *Jobs) getBuildFromStatus(name string, hash string, jenkins *virtuslabv1alpha1.Jenkins) (*virtuslabv1alpha1.Build, error) {
|
||||
@@ -185,7 +191,8 @@ func (jobs *Jobs) ensureFailedBuild(build virtuslabv1alpha1.Build, jenkins *virt
|
||||
|
||||
if build.Retires < MaxBuildRetires {
|
||||
jobs.logger.Info(fmt.Sprintf("Retrying build, name:'%s' hash:'%s' retries: '%d'", build.Name, build.Hash, build.Retires))
|
||||
_, err := jobs.buildJob(build.Name, build.Hash, parameters, jenkins)
|
||||
build.Retires = build.Retires + 1
|
||||
_, err := jobs.buildJob(build, parameters, jenkins)
|
||||
if err != nil {
|
||||
jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Couldn't retry build, name:'%s' hash:'%s'", build.Name, build.Hash))
|
||||
return false, err
|
||||
@@ -272,27 +279,23 @@ func (jobs *Jobs) removeBuildFromStatus(build virtuslabv1alpha1.Build, jenkins *
|
||||
return nil
|
||||
}
|
||||
|
||||
func (jobs *Jobs) buildJob(name string, hash string, parameters map[string]string, jenkins *virtuslabv1alpha1.Jenkins) (bool, error) {
|
||||
func (jobs *Jobs) buildJob(build virtuslabv1alpha1.Build, parameters map[string]string, jenkins *virtuslabv1alpha1.Jenkins) (bool, error) {
|
||||
if jenkins == nil {
|
||||
return false, ErrorEmptyJenkinsCR
|
||||
}
|
||||
|
||||
jobs.logger.Info(fmt.Sprintf("Running build, name:'%s' hash:'%s'", name, hash))
|
||||
jobs.logger.Info(fmt.Sprintf("Running build, name:'%s' hash:'%s'", build.Name, build.Hash))
|
||||
|
||||
number, err := jobs.jenkinsClient.BuildJob(name, parameters)
|
||||
number, err := jobs.jenkinsClient.BuildJob(build.Name, parameters)
|
||||
if err != nil {
|
||||
jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Couldn't run build, name:'%s' hash:'%s' number:'%d'", name, hash, number))
|
||||
jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Couldn't run build, name:'%s' hash:'%s' number:'%d'", build.Name, build.Hash, number))
|
||||
return false, err
|
||||
}
|
||||
|
||||
build := virtuslabv1alpha1.Build{
|
||||
Name: name,
|
||||
Number: number,
|
||||
Hash: hash,
|
||||
Status: RunningStatus,
|
||||
}
|
||||
build.Status = RunningStatus
|
||||
build.Number = number
|
||||
|
||||
jobs.logger.Info(fmt.Sprintf("Updating build status, name:'%s' hash:'%s' status:'%s'", name, hash, build.Status))
|
||||
jobs.logger.Info(fmt.Sprintf("Updating build status, name:'%s' hash:'%s' status:'%s'", build.Name, build.Hash, build.Status))
|
||||
err = jobs.updateBuildStatus(build, jenkins)
|
||||
if err != nil {
|
||||
jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Couldn't update build status, name:'%s' hash:'%s'", build.Name, build.Hash))
|
||||
|
||||
@@ -1 +1,271 @@
|
||||
package jobs
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/sha256"
|
||||
"encoding/base64"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
virtuslabv1alpha1 "github.com/VirtusLab/jenkins-operator/pkg/apis/virtuslab/v1alpha1"
|
||||
"github.com/VirtusLab/jenkins-operator/pkg/controller/jenkins/client"
|
||||
"github.com/bndr/gojenkins"
|
||||
"github.com/golang/mock/gomock"
|
||||
"github.com/stretchr/testify/assert"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||
logf "sigs.k8s.io/controller-runtime/pkg/runtime/log"
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
virtuslabv1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme)
|
||||
os.Exit(m.Run())
|
||||
}
|
||||
|
||||
func TestSuccessEnsureJob(t *testing.T) {
|
||||
// given
|
||||
logger := logf.ZapLogger(false)
|
||||
ctrl := gomock.NewController(t)
|
||||
ctx := context.TODO()
|
||||
defer ctrl.Finish()
|
||||
|
||||
buildName := "Test Job"
|
||||
buildNumber := int64(1)
|
||||
jenkinsClient := client.NewMockJenkins(ctrl)
|
||||
fakeClient := fake.NewFakeClient()
|
||||
|
||||
hash := sha256.New()
|
||||
hash.Write([]byte(buildName))
|
||||
encodedHash := base64.URLEncoding.EncodeToString(hash.Sum(nil))
|
||||
|
||||
// when
|
||||
jenkins := jenkinsCustomResource()
|
||||
err := fakeClient.Create(ctx, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
jobs := New(jenkinsClient, fakeClient, logger)
|
||||
|
||||
// first run - build should be scheduled and status updated
|
||||
jenkinsClient.
|
||||
EXPECT().
|
||||
BuildJob(buildName, gomock.Any()).
|
||||
Return(buildNumber, nil)
|
||||
|
||||
done, err := jobs.EnsureBuildJob(buildName, encodedHash, nil, jenkins, true)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, done)
|
||||
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Name: jenkins.Name, Namespace: jenkins.Namespace}, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
assert.Equal(t, len(jenkins.Status.Builds), 1)
|
||||
|
||||
build := jenkins.Status.Builds[0]
|
||||
assert.Equal(t, build.Name, buildName)
|
||||
assert.Equal(t, build.Hash, encodedHash)
|
||||
assert.Equal(t, build.Number, buildNumber)
|
||||
assert.Equal(t, build.Status, RunningStatus)
|
||||
assert.Equal(t, build.Retires, 0)
|
||||
assert.NotNil(t, build.CreateTime)
|
||||
assert.NotNil(t, build.LastUpdateTime)
|
||||
|
||||
// second run - build should be success and status updated
|
||||
jenkinsClient.
|
||||
EXPECT().
|
||||
GetBuild(buildName, buildNumber).
|
||||
Return(&gojenkins.Build{
|
||||
Raw: &gojenkins.BuildResponse{
|
||||
Result: SuccessStatus,
|
||||
},
|
||||
}, nil)
|
||||
|
||||
done, err = jobs.EnsureBuildJob(buildName, encodedHash, nil, jenkins, true)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, done)
|
||||
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Name: jenkins.Name, Namespace: jenkins.Namespace}, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
assert.Equal(t, len(jenkins.Status.Builds), 1)
|
||||
|
||||
build = jenkins.Status.Builds[0]
|
||||
assert.Equal(t, build.Name, buildName)
|
||||
assert.Equal(t, build.Hash, encodedHash)
|
||||
assert.Equal(t, build.Number, buildNumber)
|
||||
assert.Equal(t, build.Status, SuccessStatus)
|
||||
assert.Equal(t, build.Retires, 0)
|
||||
assert.NotNil(t, build.CreateTime)
|
||||
assert.NotNil(t, build.LastUpdateTime)
|
||||
}
|
||||
|
||||
func TestEnsureJobWithFailedBuild(t *testing.T) {
|
||||
// given
|
||||
logger := logf.ZapLogger(false)
|
||||
ctrl := gomock.NewController(t)
|
||||
ctx := context.TODO()
|
||||
defer ctrl.Finish()
|
||||
|
||||
buildName := "Test Job"
|
||||
buildNumber := int64(1)
|
||||
jenkinsClient := client.NewMockJenkins(ctrl)
|
||||
fakeClient := fake.NewFakeClient()
|
||||
|
||||
hash := sha256.New()
|
||||
hash.Write([]byte(buildName))
|
||||
encodedHash := base64.URLEncoding.EncodeToString(hash.Sum(nil))
|
||||
|
||||
// when
|
||||
jenkins := jenkinsCustomResource()
|
||||
err := fakeClient.Create(ctx, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
jobs := New(jenkinsClient, fakeClient, logger)
|
||||
|
||||
// first run - build should be scheduled and status updated
|
||||
jenkinsClient.
|
||||
EXPECT().
|
||||
BuildJob(buildName, gomock.Any()).
|
||||
Return(buildNumber, nil)
|
||||
|
||||
done, err := jobs.EnsureBuildJob(buildName, encodedHash, nil, jenkins, true)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, done)
|
||||
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Name: jenkins.Name, Namespace: jenkins.Namespace}, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
assert.Equal(t, len(jenkins.Status.Builds), 1)
|
||||
|
||||
build := jenkins.Status.Builds[0]
|
||||
assert.Equal(t, build.Name, buildName)
|
||||
assert.Equal(t, build.Hash, encodedHash)
|
||||
assert.Equal(t, build.Number, buildNumber)
|
||||
assert.Equal(t, build.Status, RunningStatus)
|
||||
assert.Equal(t, build.Retires, 0)
|
||||
assert.NotNil(t, build.CreateTime)
|
||||
assert.NotNil(t, build.LastUpdateTime)
|
||||
|
||||
// second run - build should be failure and status updated
|
||||
jenkinsClient.
|
||||
EXPECT().
|
||||
GetBuild(buildName, buildNumber).
|
||||
Return(&gojenkins.Build{
|
||||
Raw: &gojenkins.BuildResponse{
|
||||
Result: FailureStatus,
|
||||
},
|
||||
}, nil)
|
||||
|
||||
done, err = jobs.EnsureBuildJob(buildName, encodedHash, nil, jenkins, true)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, done)
|
||||
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Name: jenkins.Name, Namespace: jenkins.Namespace}, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
assert.Equal(t, len(jenkins.Status.Builds), 1)
|
||||
|
||||
build = jenkins.Status.Builds[0]
|
||||
assert.Equal(t, build.Name, buildName)
|
||||
assert.Equal(t, build.Hash, encodedHash)
|
||||
assert.Equal(t, build.Number, buildNumber)
|
||||
assert.Equal(t, build.Status, FailureStatus)
|
||||
assert.Equal(t, build.Retires, 0)
|
||||
assert.NotNil(t, build.CreateTime)
|
||||
assert.NotNil(t, build.LastUpdateTime)
|
||||
|
||||
// third run - build should be rescheduled and status updated
|
||||
jenkinsClient.
|
||||
EXPECT().
|
||||
BuildJob(buildName, gomock.Any()).
|
||||
Return(buildNumber+1, nil)
|
||||
|
||||
done, err = jobs.EnsureBuildJob(buildName, encodedHash, nil, jenkins, true)
|
||||
assert.EqualError(t, err, ErrorBuildFailed.Error())
|
||||
assert.False(t, done)
|
||||
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Name: jenkins.Name, Namespace: jenkins.Namespace}, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
assert.Equal(t, len(jenkins.Status.Builds), 1)
|
||||
|
||||
build = jenkins.Status.Builds[0]
|
||||
assert.Equal(t, build.Name, buildName)
|
||||
assert.Equal(t, build.Hash, encodedHash)
|
||||
assert.Equal(t, build.Number, buildNumber+1)
|
||||
assert.Equal(t, build.Status, RunningStatus)
|
||||
assert.Equal(t, build.Retires, 1)
|
||||
assert.NotNil(t, build.CreateTime)
|
||||
assert.NotNil(t, build.LastUpdateTime)
|
||||
|
||||
// fourth run - build should be success and status updated
|
||||
jenkinsClient.
|
||||
EXPECT().
|
||||
GetBuild(buildName, buildNumber+1).
|
||||
Return(&gojenkins.Build{
|
||||
Raw: &gojenkins.BuildResponse{
|
||||
Result: SuccessStatus,
|
||||
},
|
||||
}, nil)
|
||||
|
||||
done, err = jobs.EnsureBuildJob(buildName, encodedHash, nil, jenkins, true)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, done)
|
||||
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Name: jenkins.Name, Namespace: jenkins.Namespace}, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
assert.Equal(t, len(jenkins.Status.Builds), 1)
|
||||
|
||||
build = jenkins.Status.Builds[0]
|
||||
assert.Equal(t, build.Name, buildName)
|
||||
assert.Equal(t, build.Hash, encodedHash)
|
||||
assert.Equal(t, build.Number, buildNumber+1)
|
||||
assert.Equal(t, build.Status, SuccessStatus)
|
||||
assert.Equal(t, build.Retires, 1)
|
||||
assert.NotNil(t, build.CreateTime)
|
||||
assert.NotNil(t, build.LastUpdateTime)
|
||||
}
|
||||
|
||||
func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins {
|
||||
return &virtuslabv1alpha1.Jenkins{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "jenkins",
|
||||
Namespace: "default",
|
||||
},
|
||||
Spec: virtuslabv1alpha1.JenkinsSpec{
|
||||
Master: virtuslabv1alpha1.JenkinsMaster{
|
||||
Image: "jenkins/jenkins",
|
||||
Annotations: map[string]string{"test": "label"},
|
||||
Resources: corev1.ResourceRequirements{
|
||||
Requests: corev1.ResourceList{
|
||||
corev1.ResourceCPU: resource.MustParse("300m"),
|
||||
corev1.ResourceMemory: resource.MustParse("500Mi"),
|
||||
},
|
||||
Limits: corev1.ResourceList{
|
||||
corev1.ResourceCPU: resource.MustParse("2"),
|
||||
corev1.ResourceMemory: resource.MustParse("2Gi"),
|
||||
},
|
||||
},
|
||||
},
|
||||
SeedJobs: []virtuslabv1alpha1.SeedJob{
|
||||
{
|
||||
ID: "jenkins-operator-e2e",
|
||||
Targets: "cicd/jobs/*.jenkins",
|
||||
Description: "Jenkins Operator e2e tests repository",
|
||||
RepositoryBranch: "master",
|
||||
RepositoryURL: "https://github.com/VirtusLab/jenkins-operator-e2e.git",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user