Skip to content

Commit

Permalink
update comment on every single stage of cli
Browse files Browse the repository at this point in the history
  • Loading branch information
motatoes committed Jan 25, 2024
1 parent ed82a7c commit f676db0
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 31 deletions.
16 changes: 9 additions & 7 deletions cli/cmd/digger/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,13 +122,14 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
var job orchestrator.JobJson

err = json.Unmarshal([]byte(inputs.JobString), &job)
commentId64, err := strconv.ParseInt(inputs.CommentId, 10, 64)

if err != nil {
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to parse jobs json. %s", err), 4)
}

_, err := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "started", time.Now(), nil)

serializedBatch, err := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "started", time.Now(), nil)
digger.UpdateStatusComment(serializedBatch.Jobs, serializedBatch.PrNumber, &githubPrService, commentId64)
if err != nil {
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to report job status to backend. Exiting. %s", err), 4)
}
Expand All @@ -142,11 +143,10 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
IsSupportMarkdown: true,
}

// TOD Remove
log.Printf("Received commentID: %v", inputs.CommentId)
commentId64, err := strconv.ParseInt(inputs.CommentId, 10, 64)
if err != nil {
reportingError, _ := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
serializedBatch, reportingError := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
digger.UpdateStatusComment(serializedBatch.Jobs, serializedBatch.PrNumber, &githubPrService, commentId64)

if reportingError != nil {
log.Printf("Failed to report job status to backend. %v", reportingError)
}
Expand All @@ -157,7 +157,9 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend

_, _, err = digger.RunJobs(jobs, &githubPrService, &githubPrService, lock, reporter, planStorage, policyChecker, backendApi, inputs.Id, true, commentId64, currentDir)
if err != nil {
reportingError, _ := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
serializedBatch, reportingError := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
digger.UpdateStatusComment(serializedBatch.Jobs, serializedBatch.PrNumber, &githubPrService, commentId64)

if reportingError != nil {
log.Printf("Failed to report job status to backend. %v", reportingError)
}
Expand Down
49 changes: 26 additions & 23 deletions cli/pkg/digger/digger.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package digger
import (
"errors"
"fmt"
"github.com/davecgh/go-spew/spew"
"github.com/diggerhq/digger/libs/orchestrator/scheduler"
"github.com/goccy/go-json"
"log"
"os"
Expand Down Expand Up @@ -130,43 +130,46 @@ func RunJobs(
}

if allAppliesSuccess == true && reportFinalStatusToBackend == true {
repoNameForBackendReporting := strings.ReplaceAll(jobs[0].Namespace, "/", "-")
projectNameForBackendReporting := jobs[0].ProjectName
currentJob := jobs[0]
repoNameForBackendReporting := strings.ReplaceAll(currentJob.Namespace, "/", "-")
projectNameForBackendReporting := currentJob.ProjectName
planSummary := exectorResults[0].PlanResult.PlanSummary
prNumber := *currentJob.PullRequestNumber
batchResult, err := backendApi.ReportProjectJobStatus(repoNameForBackendReporting, projectNameForBackendReporting, batchId, "succeeded", time.Now(), &planSummary)
if err != nil {
log.Printf("error reporting Job status: %v.\n", err)
return false, false, fmt.Errorf("error while running command: %v", err)
}

prNumber := *jobs[0].PullRequestNumber
message := ":construction_worker: Jobs status:\n\n"
for _, job := range batchResult.Jobs {
err = UpdateStatusComment(batchResult.Jobs, prNumber, prService, prCommentId)
if err != nil {
return false, false, err
}
}

var jobjson orchestrator.JobJson
err = json.Unmarshal(job.JobString, &jobjson)
atLeastOneApply := len(appliesPerProject) > 0

fmt.Printf("!!! jobjson %v", jobjson)
spew.Dump(jobjson)
return allAppliesSuccess, atLeastOneApply, nil
}

if err != nil {
log.Printf("Failed to convert unmarshall Serialized job")
}
func UpdateStatusComment(jobs []scheduler.SerializedJob, prNumber int, prService orchestrator.PullRequestService, prCommentId int64) error {

message = message + fmt.Sprintf("<!-- PROJECTHOLDER %v -->\n", job.ProjectName)
message = message + fmt.Sprintf("%v **%v** %v%v\n", job.Status.ToEmoji(), jobjson.ProjectName, job.ResourcesSummaryString(), job.Status.ToString())
message = message + fmt.Sprintf("<!-- PROJECTHOLDEREND %v -->\n", job.ProjectName)
}
message := ":construction_worker: Jobs status:\n\n"
for _, job := range jobs {

fmt.Printf("!!!! interface")
spew.Dump(batchResult)
var jobSpec orchestrator.JobJson
err := json.Unmarshal(job.JobString, &jobSpec)
if err != nil {
log.Printf("Failed to convert unmarshall Serialized job")
}

prService.EditComment(prNumber, prCommentId, message)
message = message + fmt.Sprintf("<!-- PROJECTHOLDER %v -->\n", job.ProjectName)
message = message + fmt.Sprintf("%v **%v** %v%v\n", job.Status.ToEmoji(), jobSpec.ProjectName, job.Status.ToString(), job.ResourcesSummaryString())
message = message + fmt.Sprintf("<!-- PROJECTHOLDEREND %v -->\n", job.ProjectName)
}

atLeastOneApply := len(appliesPerProject) > 0

return allAppliesSuccess, atLeastOneApply, nil
prService.EditComment(prNumber, prCommentId, message)
return nil
}

func reportPolicyError(projectName string, command string, requestedBy string, reporter core_reporting.Reporter) string {
Expand Down
2 changes: 1 addition & 1 deletion libs/orchestrator/scheduler/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ type SerializedBatch struct {

func (s *SerializedJob) ResourcesSummaryString() string {
if s.Status == DiggerJobSucceeded {
return fmt.Sprintf(" [Resources: %v created, %v updated, %v deleted]", s.ResourcesCreated, s.ResourcesUpdated, s.ResourcesDeleted)
return fmt.Sprintf(" [Resources: %v to create, %v to update, %v to delete]", s.ResourcesCreated, s.ResourcesUpdated, s.ResourcesDeleted)
} else {
return "..."
}
Expand Down

0 comments on commit f676db0

Please sign in to comment.