Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 8 additions & 109 deletions backend/controllers/projects_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,74 +111,6 @@ func GenerateChecksSummaryForJob( job *models.DiggerJob) (string, error) {
}




func UpdateCommitStatusForBatch(gh utils.GithubClientProvider, batch *models.DiggerBatch) error {
slog.Info("Updating PR status for batch",
"batchId", batch.ID,
"prNumber", batch.PrNumber,
"batchStatus", batch.Status,
"batchType", batch.BatchType,
)

prService, err := utils.GetPrServiceFromBatch(batch, gh)
if err != nil {
slog.Error("Error getting PR service",
"batchId", batch.ID,
"error", err,
)
return fmt.Errorf("error getting github service: %v", err)
}

diggerYmlString := batch.DiggerConfig
diggerConfigYml, err := digger_config.LoadDiggerConfigYamlFromString(diggerYmlString)
if err != nil {
slog.Error("Error loading Digger config from batch",
"batchId", batch.ID,
"error", err,
)
return fmt.Errorf("error loading digger config from batch: %v", err)
}

config, _, err := digger_config.ConvertDiggerYamlToConfig(diggerConfigYml)
if err != nil {
slog.Error("Error converting Digger YAML to config",
"batchId", batch.ID,
"error", err,
)
return fmt.Errorf("error converting Digger YAML to config: %v", err)
}

disableDiggerApplyStatusCheck := config.DisableDiggerApplyStatusCheck

isPlanBatch := batch.BatchType == orchestrator_scheduler.DiggerCommandPlan

serializedBatch, err := batch.MapToJsonStruct()
if err != nil {
slog.Error("Error mapping batch to json struct",
"batchId", batch.ID,
"error", err,
)
return fmt.Errorf("error mapping batch to json struct: %v", err)
}
slog.Debug("Updating PR status for batch",
"batchId", batch.ID, "prNumber", batch.PrNumber, "batchStatus", batch.Status, "batchType", batch.BatchType,
"newStatus", serializedBatch.ToCommitStatusCheck())
if isPlanBatch {
prService.SetStatus(batch.PrNumber, serializedBatch.ToCommitStatusCheck(), "digger/plan")
if disableDiggerApplyStatusCheck == false {
prService.SetStatus(batch.PrNumber, "pending", "digger/apply")
}

} else {
prService.SetStatus(batch.PrNumber, "success", "digger/plan")
if disableDiggerApplyStatusCheck == false {
prService.SetStatus(batch.PrNumber, serializedBatch.ToCommitStatusCheck(), "digger/apply")
}
}
return nil
}

func UpdateCheckRunForBatch(gh utils.GithubClientProvider, batch *models.DiggerBatch) error {
slog.Info("Updating PR status for batch",
"batchId", batch.ID,
Expand Down Expand Up @@ -272,7 +204,10 @@ func UpdateCheckRunForBatch(gh utils.GithubClientProvider, batch *models.DiggerB
&message,
utils.GetActionsForBatch(batch),
}
ghPrService.UpdateCheckRun(*batch.CheckRunId, opts)
_, err = ghPrService.UpdateCheckRun(*batch.CheckRunId, opts)
if err != nil {
slog.Error("Error updating check run", "error", err, "batchId", batch.ID, "prNumber", batch.PrNumber)
}
} else {
if disableDiggerApplyStatusCheck == false {
status := serializedBatch.ToCheckRunStatus()
Expand All @@ -286,51 +221,15 @@ func UpdateCheckRunForBatch(gh utils.GithubClientProvider, batch *models.DiggerB
&message,
utils.GetActionsForBatch(batch),
}
ghPrService.UpdateCheckRun(*batch.CheckRunId, opts)
_, err = ghPrService.UpdateCheckRun(*batch.CheckRunId, opts)
if err != nil {
slog.Error("Error updating check run", "batchId", batch.ID, "prNumber", batch.PrNumber)
}
}
}
return nil
}

func UpdateCommitStatusForJob(gh utils.GithubClientProvider, job *models.DiggerJob) error {
batch := job.Batch
slog.Info("Updating PR status for job",
"jobId", job.DiggerJobID,
"prNumber", batch.PrNumber,
"jobStatus", job.Status,
"batchType", batch.BatchType,
)

prService, err := utils.GetPrServiceFromBatch(batch, gh)
if err != nil {
slog.Error("Error getting PR service",
"batchId", batch.ID,
"error", err,
)
return fmt.Errorf("error getting github service: %v", err)
}

var jobSpec orchestrator_scheduler.JobJson
err = json.Unmarshal([]byte(job.SerializedJobSpec), &jobSpec)
if err != nil {
slog.Error("Could not unmarshal job spec", "jobId", job.DiggerJobID, "error", err)
return fmt.Errorf("could not unmarshal json string: %v", err)
}

isPlan := jobSpec.IsPlan()
status, err := models.GetCommitStatusForJob(job)
if err != nil {
return fmt.Errorf("could not get status check for job: %v", err)
}
slog.Debug("Updating PR status for job", "jobId", job.DiggerJobID, "status", status)
if isPlan {
prService.SetStatus(batch.PrNumber, status, jobSpec.GetProjectAlias()+"/plan")
prService.SetStatus(batch.PrNumber, "neutral", jobSpec.GetProjectAlias()+"/apply")
} else {
prService.SetStatus(batch.PrNumber, status, jobSpec.GetProjectAlias()+"/apply")
}
return nil
}

// more modern check runs on github have their own page
func UpdateCheckRunForJob(gh utils.GithubClientProvider, job *models.DiggerJob) error {
Expand Down
2 changes: 1 addition & 1 deletion libs/ci/github/github.go
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ func (svc GithubService) UpdateCheckRun(checkRunId string, options GithubCheckRu
opts.Status = github.String(*newStatus)
}

if conclusion != nil {
if conclusion != nil && *conclusion != "" {
opts.Conclusion = github.String(*conclusion)
}

Expand Down
Loading