@ -43,6 +43,7 @@ func stopTasks(ctx context.Context, opts actions_model.FindTaskOptions) error {
return fmt . Errorf ( "find tasks: %w" , err )
return fmt . Errorf ( "find tasks: %w" , err )
}
}
jobs := make ( [ ] * actions_model . ActionRunJob , 0 , len ( tasks ) )
for _ , task := range tasks {
for _ , task := range tasks {
if err := db . WithTx ( ctx , func ( ctx context . Context ) error {
if err := db . WithTx ( ctx , func ( ctx context . Context ) error {
if err := actions_model . StopTask ( ctx , task . ID , actions_model . StatusFailure ) ; err != nil {
if err := actions_model . StopTask ( ctx , task . ID , actions_model . StatusFailure ) ; err != nil {
@ -51,7 +52,8 @@ func stopTasks(ctx context.Context, opts actions_model.FindTaskOptions) error {
if err := task . LoadJob ( ctx ) ; err != nil {
if err := task . LoadJob ( ctx ) ; err != nil {
return err
return err
}
}
return CreateCommitStatus ( ctx , task . Job )
jobs = append ( jobs , task . Job )
return nil
} ) ; err != nil {
} ) ; err != nil {
log . Warn ( "Cannot stop task %v: %v" , task . ID , err )
log . Warn ( "Cannot stop task %v: %v" , task . ID , err )
// go on
// go on
@ -61,6 +63,14 @@ func stopTasks(ctx context.Context, opts actions_model.FindTaskOptions) error {
remove ( )
remove ( )
}
}
}
}
for _ , job := range jobs {
if err := CreateCommitStatus ( ctx , job ) ; err != nil {
log . Error ( "Update commit status for job %v failed: %v" , job . ID , err )
// go on
}
}
return nil
return nil
}
}
@ -80,14 +90,16 @@ func CancelAbandonedJobs(ctx context.Context) error {
job . Status = actions_model . StatusCancelled
job . Status = actions_model . StatusCancelled
job . Stopped = now
job . Stopped = now
if err := db . WithTx ( ctx , func ( ctx context . Context ) error {
if err := db . WithTx ( ctx , func ( ctx context . Context ) error {
if _ , err := actions_model . UpdateRunJob ( ctx , job , nil , "status" , "stopped" ) ; err != nil {
_ , err := actions_model . UpdateRunJob ( ctx , job , nil , "status" , "stopped" )
return err
return err
}
return CreateCommitStatus ( ctx , job )
} ) ; err != nil {
} ) ; err != nil {
log . Warn ( "cancel abandoned job %v: %v" , job . ID , err )
log . Warn ( "cancel abandoned job %v: %v" , job . ID , err )
// go on
// go on
}
}
if err := CreateCommitStatus ( ctx , job ) ; err != nil {
log . Error ( "Update commit status for job %v failed: %v" , job . ID , err )
// go on
}
}
}
return nil
return nil