func (core *Core) BuildImage(job *registry.Job) error { // Build Images before run test task // TaskID: build-{JobID}-{randID}-{NumberOfScale} log.Infof("Create task for job(%v) to build image", job.ID) job.Image = "image-" + job.ID for index := 1; index <= job.BuildNodeNumber(); index++ { task := ®istry.Task{ Cpus: BuildCPU, Mem: BuildMem, ID: "build-" + job.ID + "-" + strconv.Itoa(index), Name: job.Name, Type: registry.TaskTypeBuild, CreateTime: time.Now().UnixNano(), JobID: job.ID, State: "TASK_WAITING", SLA: registry.SLAOnePerNode, } err := core.AddTask(task.ID, task) job.PushTask(task) if err != nil { log.Errorf("Error when add %d build image task: %v", index, err) task.State = "TASK_FAILED" job.PopLastTask() continue } } return nil }