Skip to content

Commit f676db0

Browse files
committed
update comment on every single stage of cli
1 parent ed82a7c commit f676db0

File tree

3 files changed

+36
-31
lines changed

3 files changed

+36
-31
lines changed

cli/cmd/digger/main.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,14 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
122122
var job orchestrator.JobJson
123123

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

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

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

145-
// TOD Remove
146-
log.Printf("Received commentID: %v", inputs.CommentId)
147-
commentId64, err := strconv.ParseInt(inputs.CommentId, 10, 64)
148146
if err != nil {
149-
reportingError, _ := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
147+
serializedBatch, reportingError := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
148+
digger.UpdateStatusComment(serializedBatch.Jobs, serializedBatch.PrNumber, &githubPrService, commentId64)
149+
150150
if reportingError != nil {
151151
log.Printf("Failed to report job status to backend. %v", reportingError)
152152
}
@@ -157,7 +157,9 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
157157

158158
_, _, err = digger.RunJobs(jobs, &githubPrService, &githubPrService, lock, reporter, planStorage, policyChecker, backendApi, inputs.Id, true, commentId64, currentDir)
159159
if err != nil {
160-
reportingError, _ := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
160+
serializedBatch, reportingError := backendApi.ReportProjectJobStatus(repoName, job.ProjectName, inputs.Id, "failed", time.Now(), nil)
161+
digger.UpdateStatusComment(serializedBatch.Jobs, serializedBatch.PrNumber, &githubPrService, commentId64)
162+
161163
if reportingError != nil {
162164
log.Printf("Failed to report job status to backend. %v", reportingError)
163165
}

cli/pkg/digger/digger.go

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package digger
33
import (
44
"errors"
55
"fmt"
6-
"github.com/davecgh/go-spew/spew"
6+
"github.com/diggerhq/digger/libs/orchestrator/scheduler"
77
"github.com/goccy/go-json"
88
"log"
99
"os"
@@ -130,43 +130,46 @@ func RunJobs(
130130
}
131131

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

142-
prNumber := *jobs[0].PullRequestNumber
143-
message := ":construction_worker: Jobs status:\n\n"
144-
for _, job := range batchResult.Jobs {
144+
err = UpdateStatusComment(batchResult.Jobs, prNumber, prService, prCommentId)
145+
if err != nil {
146+
return false, false, err
147+
}
148+
}
145149

146-
var jobjson orchestrator.JobJson
147-
err = json.Unmarshal(job.JobString, &jobjson)
150+
atLeastOneApply := len(appliesPerProject) > 0
148151

149-
fmt.Printf("!!! jobjson %v", jobjson)
150-
spew.Dump(jobjson)
152+
return allAppliesSuccess, atLeastOneApply, nil
153+
}
151154

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

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

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

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

167-
atLeastOneApply := len(appliesPerProject) > 0
168-
169-
return allAppliesSuccess, atLeastOneApply, nil
171+
prService.EditComment(prNumber, prCommentId, message)
172+
return nil
170173
}
171174

172175
func reportPolicyError(projectName string, command string, requestedBy string, reporter core_reporting.Reporter) string {

libs/orchestrator/scheduler/models.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ type SerializedBatch struct {
8787

8888
func (s *SerializedJob) ResourcesSummaryString() string {
8989
if s.Status == DiggerJobSucceeded {
90-
return fmt.Sprintf(" [Resources: %v created, %v updated, %v deleted]", s.ResourcesCreated, s.ResourcesUpdated, s.ResourcesDeleted)
90+
return fmt.Sprintf(" [Resources: %v to create, %v to update, %v to delete]", s.ResourcesCreated, s.ResourcesUpdated, s.ResourcesDeleted)
9191
} else {
9292
return "..."
9393
}

0 commit comments

Comments
 (0)