Skip to content

Commit dcf035f

Browse files
authored
ensure that the job refreshes after variables are saved (#1673)
1 parent 4793549 commit dcf035f

File tree

4 files changed

+15
-11
lines changed

4 files changed

+15
-11
lines changed

backend/services/scheduler.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,19 +103,19 @@ func TriggerJob(gh utils.GithubClientProvider, ciBackend ci_backends.CiBackend,
103103
runName, err := GetRunNameFromJob(*job)
104104
if err != nil {
105105
log.Printf("could not get run name: %v", err)
106-
return fmt.Errorf("coult not get run name %v", err)
106+
return fmt.Errorf("could not get run name %v", err)
107107
}
108108

109109
spec, err := GetSpecFromJob(*job)
110110
if err != nil {
111111
log.Printf("could not get spec: %v", err)
112-
return fmt.Errorf("coult not get spec %v", err)
112+
return fmt.Errorf("could not get spec %v", err)
113113
}
114114

115115
vcsToken, err := GetVCSTokenFromJob(*job, gh)
116116
if err != nil {
117117
log.Printf("could not get vcs token: %v", err)
118-
return fmt.Errorf("coult not get vcs token: %v", err)
118+
return fmt.Errorf("could not get vcs token: %v", err)
119119
}
120120

121121
err = ciBackend.TriggerWorkflow(*spec, *runName, *vcsToken)

next/services/runs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ func RunQueuesStateMachine(queueItem *model.DiggerRunQueueItem, service ci.PullR
4343
return fmt.Errorf("could not get run name: %v", err)
4444
}
4545

46-
err = RefreshVariableSpecForJob(*planJob)
46+
err = RefreshVariableSpecForJob(planJob)
4747
if err != nil {
4848
log.Printf("could not get variable spec from job: %v", err)
4949
return fmt.Errorf("could not get variable spec from job: %v", err)
5050
}
5151

5252
// NOTE: We have to refresh both plan and apply jobs since we want to use exact same variables
5353
// in both of these jobs
54-
err = RefreshVariableSpecForJob(*applyJob)
54+
err = RefreshVariableSpecForJob(applyJob)
5555
if err != nil {
5656
log.Printf("could not get variable spec from job: %v", err)
5757
return fmt.Errorf("could not get variable spec from job: %v", err)

next/services/scheduler.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@ func TriggerJob(gh utils.GithubClientProvider, ciBackend ci_backends.CiBackend,
6767
runName, err := GetRunNameFromJob(*job)
6868
if err != nil {
6969
log.Printf("could not get run name: %v", err)
70-
return fmt.Errorf("coult not get run name %v", err)
70+
return fmt.Errorf("could not get run name %v", err)
7171
}
7272

73-
err = RefreshVariableSpecForJob(*job)
73+
err = RefreshVariableSpecForJob(job)
7474
if err != nil {
7575
log.Printf("could not get variable spec from job: %v", err)
7676
return fmt.Errorf("could not get variable spec from job: %v", err)
@@ -79,13 +79,13 @@ func TriggerJob(gh utils.GithubClientProvider, ciBackend ci_backends.CiBackend,
7979
spec, err := GetSpecFromJob(*job, lib_spec.SpecTypeApplyBeforeMergeJob)
8080
if err != nil {
8181
log.Printf("could not get spec: %v", err)
82-
return fmt.Errorf("coult not get spec %v", err)
82+
return fmt.Errorf("could not get spec %v", err)
8383
}
8484

8585
vcsToken, err := GetVCSTokenFromJob(*job, gh)
8686
if err != nil {
8787
log.Printf("could not get vcs token: %v", err)
88-
return fmt.Errorf("coult not get vcs token: %v", err)
88+
return fmt.Errorf("could not get vcs token: %v", err)
8989
}
9090

9191
err = ciBackend.TriggerWorkflow(*spec, *runName, *vcsToken)

next/services/spec.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func GetVCSTokenFromJob(job model.DiggerJob, gh utils.GithubClientProvider) (*st
4545
return &token, nil
4646
}
4747

48-
func RefreshVariableSpecForJob(job model.DiggerJob) error {
48+
func RefreshVariableSpecForJob(job *model.DiggerJob) error {
4949
var jobSpec scheduler.JobJson
5050
err := json.Unmarshal([]byte(job.JobSpec), &jobSpec)
5151
if err != nil {
@@ -111,7 +111,10 @@ func RefreshVariableSpecForJob(job model.DiggerJob) error {
111111
}
112112

113113
job.VariablesSpec = marshalledSpecVariables
114-
dbmodels.DB.GormDB.Save(job)
114+
err = dbmodels.DB.GormDB.Save(job).Error
115+
if err != nil {
116+
return fmt.Errorf("failed to save spec variables: %v", err)
117+
}
115118

116119
// here we get vars using project.ID for this project and load them into a specVariables, marshall
117120
// them and then store them in job.VarsSpec
@@ -153,6 +156,7 @@ func GetSpecFromJob(job model.DiggerJob, specType spec.SpecType) (*spec.Spec, er
153156
}
154157

155158
var variablesSpec []spec.VariableSpec
159+
log.Printf("variablespec: %v", job.VariablesSpec)
156160
err = json.Unmarshal(job.VariablesSpec, &variablesSpec)
157161
if err != nil {
158162
log.Printf("could not unmarshal variables spec: %v", err)

0 commit comments

Comments
 (0)