Implement platform management features
This commit is contained in:
@@ -66,7 +66,17 @@ func (svc *CoreService) enqueueDistributionBuild(job domain.Job) {
|
||||
delete(svc.distributionBuilds, job.ID)
|
||||
svc.distributionBuildMu.Unlock()
|
||||
}()
|
||||
_ = svc.executeDistributionBuild(job)
|
||||
defer func() {
|
||||
if recover() != nil {
|
||||
_ = svc.failDistributionBuildJob(job, "platform builder failed unexpectedly")
|
||||
}
|
||||
}()
|
||||
if err := svc.executeDistributionBuild(job); err != nil {
|
||||
// executeDistributionBuild may fail after persisting the running state.
|
||||
// A second terminalization attempt is idempotent when the specific
|
||||
// failure path already marked the job failed.
|
||||
_ = svc.failDistributionBuildJob(job, "platform builder failed before completion")
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
@@ -99,7 +109,7 @@ func (svc *CoreService) executeDistributionBuild(job domain.Job) error {
|
||||
payload, buildErr = builder.Build(input)
|
||||
}
|
||||
if buildErr != nil {
|
||||
return svc.failDistributionBuildJob(job, builderJobFailureMessage(buildErr))
|
||||
return svc.failDistributionBuildJob(job, builderJobFailureMessage(buildErr, input.AuthKey))
|
||||
}
|
||||
if _, err := svc.platformDistributionBuildInput(job); err != nil {
|
||||
return svc.failDistributionBuildJob(job, "platform builder discarded output because the component key is no longer current")
|
||||
|
||||
Reference in New Issue
Block a user