in commands/single.go [67:107]
func (r *RunSingleCommand) processBuild(data common.ExecutorData, abortSignal chan os.Signal) (err error) {
jobData, healthy := r.network.RequestJob(r.RunnerConfig)
if !healthy {
log.Println("Runner is not healthy!")
select {
case <-time.After(common.NotHealthyCheckInterval * time.Second):
case <-abortSignal:
}
return
}
if jobData == nil {
select {
case <-time.After(common.CheckInterval):
case <-abortSignal:
}
return
}
config := common.NewConfig()
newBuild := common.Build{
JobResponse: *jobData,
Runner: &r.RunnerConfig,
SystemInterrupt: abortSignal,
ExecutorData: data,
}
jobCredentials := &common.JobCredentials{
ID: jobData.ID,
Token: jobData.Token,
}
trace := r.network.ProcessJob(r.RunnerConfig, jobCredentials)
defer trace.Fail(err)
err = newBuild.Run(config, trace)
r.postBuild()
return
}