@@ -21,19 +21,23 @@ func PickTask(ctx context.Context, runner *actions_model.ActionRunner) (*runnerv
2121 job * actions_model.ActionRunJob
2222 )
2323
24- if err := db . WithTx ( ctx , func ( ctx context. Context ) error {
25- if runner . Ephemeral {
26- var task actions_model. ActionTask
27- has , err := db . GetEngine ( ctx ). Where ( "runner_id = ?" , runner . ID ). Get ( & task )
28- if err == nil && has {
29- if task . Status == actions_model . StatusWaiting || task . Status == actions_model . StatusRunning || task . Status == actions_model . StatusBlocked {
30- return nil
31- }
32- // task has been finished, remove it
33- _ , _ = db . GetEngine ( ctx ). Delete ( runner )
34- return fmt . Errorf ( "runner has been removed" )
24+ if runner . Ephemeral {
25+ var task actions_model. ActionTask
26+ has , err := db . GetEngine ( ctx ). Where ( "runner_id = ?" , runner . ID ). Get ( & task )
27+ if err == nil && has {
28+ if task . Status == actions_model . StatusWaiting || task . Status == actions_model . StatusRunning || task . Status == actions_model . StatusBlocked {
29+ return nil , false , nil
30+ }
31+ // task has been finished, remove it
32+ _ , err = db . GetEngine ( ctx ). Delete ( runner )
33+ if err != nil {
34+ return nil , false , err
3535 }
36+ return nil , false , fmt .Errorf ("runner has been removed" )
3637 }
38+ }
39+
40+ if err := db .WithTx (ctx , func (ctx context.Context ) error {
3741 t , ok , err := actions_model .CreateTaskForRunner (ctx , runner )
3842 if err != nil {
3943 return fmt .Errorf ("CreateTaskForRunner: %w" , err )
0 commit comments