Support bot site

This commit is contained in:
Lunny Xiao 2022-11-16 19:20:52 +08:00 committed by Jason Song
parent 7059cd7265
commit 9a45572ce2
6 changed files with 24 additions and 20 deletions

View File

@ -136,17 +136,21 @@ func updateRepoRunsNumbers(ctx context.Context, repo *repo_model.Repository) err
// InsertRun inserts a bot run
func InsertRun(run *Run, jobs []*jobparser.SingleWorkflow) error {
index, err := db.GetNextResourceIndex("bots_run_index", run.RepoID)
ctx, commiter, err := db.TxContext(db.DefaultContext)
if err != nil {
return err
}
defer commiter.Close()
index, err := db.GetNextResourceIndex(ctx, "bots_run_index", run.RepoID)
if err != nil {
return err
}
run.Index = index
ctx, commiter, err := db.TxContext()
if err != nil {
return err
if run.Status == StatusUnknown {
run.Status = StatusWaiting
}
defer commiter.Close()
if err := db.Insert(ctx, run); err != nil {
return err

View File

@ -291,7 +291,7 @@ func GetTaskByToken(ctx context.Context, token string) (*Task, error) {
}
func CreateTaskForRunner(ctx context.Context, runner *Runner) (*Task, bool, error) {
dbCtx, commiter, err := db.TxContext()
dbCtx, commiter, err := db.TxContext(ctx)
if err != nil {
return nil, false, err
}
@ -422,7 +422,7 @@ func UpdateTaskByState(state *runnerv1.TaskState) (*Task, error) {
stepStates[v.Id] = v
}
ctx, commiter, err := db.TxContext()
ctx, commiter, err := db.TxContext(db.DefaultContext)
if err != nil {
return nil, err
}
@ -485,7 +485,7 @@ func UpdateTaskByState(state *runnerv1.TaskState) (*Task, error) {
}
func StopTask(ctx context.Context, task *Task, result runnerv1.Result) (*Task, error) {
ctx, commiter, err := db.TxContext()
ctx, commiter, err := db.TxContext(ctx)
if err != nil {
return nil, err
}

View File

@ -285,7 +285,7 @@ func (f *file) truncate() error {
if f.metaID == 0 {
return os.ErrNotExist
}
return db.WithTx(func(ctx context.Context) error {
return db.WithTx(f.ctx, func(ctx context.Context) error {
if _, err := db.GetEngine(ctx).Exec("UPDATE file_meta SET file_size = 0 WHERE id = ?", f.metaID); err != nil {
return err
}
@ -293,7 +293,7 @@ func (f *file) truncate() error {
return err
}
return nil
}, f.ctx)
})
}
func (f *file) renameTo(newPath string) error {
@ -301,19 +301,19 @@ func (f *file) renameTo(newPath string) error {
return os.ErrNotExist
}
newPath = buildPath(newPath)
return db.WithTx(func(ctx context.Context) error {
return db.WithTx(f.ctx, func(ctx context.Context) error {
if _, err := db.GetEngine(ctx).Exec("UPDATE file_meta SET full_path = ? WHERE id = ?", newPath, f.metaID); err != nil {
return err
}
return nil
}, f.ctx)
})
}
func (f *file) delete() error {
if f.metaID == 0 {
return os.ErrNotExist
}
return db.WithTx(func(ctx context.Context) error {
return db.WithTx(f.ctx, func(ctx context.Context) error {
if _, err := db.GetEngine(ctx).Delete(&FileMeta{ID: f.metaID}); err != nil {
return err
}
@ -321,7 +321,7 @@ func (f *file) delete() error {
return err
}
return nil
}, f.ctx)
})
}
func (f *file) size() (int64, error) {

View File

@ -46,7 +46,7 @@ func jobEmitterQueueHandle(data ...queue.Data) []queue.Data {
}
func checkJobsOfRun(ctx context.Context, runID int64) error {
return db.WithTx(func(ctx context.Context) error {
return db.WithTx(ctx, func(ctx context.Context) error {
jobs, _, err := bots_model.FindRunJobs(ctx, bots_model.FindRunJobOptions{RunID: runID})
if err != nil {
return err
@ -68,7 +68,7 @@ func checkJobsOfRun(ctx context.Context, runID int64) error {
}
}
return nil
}, ctx)
})
}
type jobStatusResolver struct {

View File

@ -210,10 +210,10 @@ func Rerun(ctx *context_module.Context) {
job.Started = 0
job.Stopped = 0
if err := db.WithTx(func(ctx context.Context) error {
if err := db.WithTx(ctx, func(ctx context.Context) error {
_, err := bots_model.UpdateRunJob(ctx, job, builder.Eq{"status": status}, "task_id", "status", "started", "stopped")
return err
}, ctx); err != nil {
}); err != nil {
ctx.Error(http.StatusInternalServerError, err.Error())
return
}

View File

@ -77,10 +77,10 @@ func CancelAbandonedJobs(ctx context.Context) error {
for _, job := range jobs {
job.Status = bots_model.StatusCancelled
job.Stopped = now
if err := db.WithTx(func(ctx context.Context) error {
if err := db.WithTx(ctx, func(ctx context.Context) error {
_, err := bots_model.UpdateRunJob(ctx, job, nil, "status", "stopped")
return err
}, ctx); err != nil {
}); err != nil {
log.Warn("cancel abandoned job %v: %v", job.ID, err)
// go on
}