in workflow.go [276:316]
func (w *Workflow) Run(ctx context.Context) (err DError) {
w.externalLogging = true
if err = w.Validate(ctx); err != nil {
return err
}
defer w.cleanup()
defer func() {
if err != nil {
w.forceCleanup = w.ForceCleanupOnError
}
}()
if os.Getenv("BUILD_ID") != "" {
w.LogWorkflowInfo("Cloud Build ID: %s", os.Getenv("BUILD_ID"))
}
w.LogWorkflowInfo("Workflow Project: %s", w.Project)
w.LogWorkflowInfo("Workflow Zone: %s", w.Zone)
w.LogWorkflowInfo("Workflow GCSPath: %s", w.GCSPath)
w.LogWorkflowInfo("Daisy scratch path: https://console.cloud.google.com/storage/browser/%s", path.Join(w.bucket, w.scratchPath))
w.LogWorkflowInfo("Uploading sources")
if err = w.uploadSources(ctx); err != nil {
w.LogWorkflowInfo("Error uploading sources: %v", err)
w.CancelWorkflow()
return err
}
w.LogWorkflowInfo("Running workflow")
defer func() {
for k, v := range w.serialControlOutputValues {
w.LogWorkflowInfo("Serial-output value -> %v:%v", k, v)
}
}()
if err = w.run(ctx); err != nil {
w.LogWorkflowInfo("Error running workflow: %v", err)
return err
}
return nil
}