mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-23 05:46:09 +02:00
Support bot site
This commit is contained in:
parent
7059cd7265
commit
9a45572ce2
@ -136,17 +136,21 @@ func updateRepoRunsNumbers(ctx context.Context, repo *repo_model.Repository) err
|
|||||||
|
|
||||||
// InsertRun inserts a bot run
|
// InsertRun inserts a bot run
|
||||||
func InsertRun(run *Run, jobs []*jobparser.SingleWorkflow) error {
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
run.Index = index
|
run.Index = index
|
||||||
|
|
||||||
ctx, commiter, err := db.TxContext()
|
if run.Status == StatusUnknown {
|
||||||
if err != nil {
|
run.Status = StatusWaiting
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
defer commiter.Close()
|
|
||||||
|
|
||||||
if err := db.Insert(ctx, run); err != nil {
|
if err := db.Insert(ctx, run); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -291,7 +291,7 @@ func GetTaskByToken(ctx context.Context, token string) (*Task, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func CreateTaskForRunner(ctx context.Context, runner *Runner) (*Task, bool, 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 {
|
if err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
@ -422,7 +422,7 @@ func UpdateTaskByState(state *runnerv1.TaskState) (*Task, error) {
|
|||||||
stepStates[v.Id] = v
|
stepStates[v.Id] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, commiter, err := db.TxContext()
|
ctx, commiter, err := db.TxContext(db.DefaultContext)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
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) {
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -285,7 +285,7 @@ func (f *file) truncate() error {
|
|||||||
if f.metaID == 0 {
|
if f.metaID == 0 {
|
||||||
return os.ErrNotExist
|
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 {
|
if _, err := db.GetEngine(ctx).Exec("UPDATE file_meta SET file_size = 0 WHERE id = ?", f.metaID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -293,7 +293,7 @@ func (f *file) truncate() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, f.ctx)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *file) renameTo(newPath string) error {
|
func (f *file) renameTo(newPath string) error {
|
||||||
@ -301,19 +301,19 @@ func (f *file) renameTo(newPath string) error {
|
|||||||
return os.ErrNotExist
|
return os.ErrNotExist
|
||||||
}
|
}
|
||||||
newPath = buildPath(newPath)
|
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 {
|
if _, err := db.GetEngine(ctx).Exec("UPDATE file_meta SET full_path = ? WHERE id = ?", newPath, f.metaID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, f.ctx)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *file) delete() error {
|
func (f *file) delete() error {
|
||||||
if f.metaID == 0 {
|
if f.metaID == 0 {
|
||||||
return os.ErrNotExist
|
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 {
|
if _, err := db.GetEngine(ctx).Delete(&FileMeta{ID: f.metaID}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -321,7 +321,7 @@ func (f *file) delete() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, f.ctx)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *file) size() (int64, error) {
|
func (f *file) size() (int64, error) {
|
||||||
|
@ -46,7 +46,7 @@ func jobEmitterQueueHandle(data ...queue.Data) []queue.Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func checkJobsOfRun(ctx context.Context, runID int64) error {
|
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})
|
jobs, _, err := bots_model.FindRunJobs(ctx, bots_model.FindRunJobOptions{RunID: runID})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -68,7 +68,7 @@ func checkJobsOfRun(ctx context.Context, runID int64) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, ctx)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
type jobStatusResolver struct {
|
type jobStatusResolver struct {
|
||||||
|
@ -210,10 +210,10 @@ func Rerun(ctx *context_module.Context) {
|
|||||||
job.Started = 0
|
job.Started = 0
|
||||||
job.Stopped = 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")
|
_, err := bots_model.UpdateRunJob(ctx, job, builder.Eq{"status": status}, "task_id", "status", "started", "stopped")
|
||||||
return err
|
return err
|
||||||
}, ctx); err != nil {
|
}); err != nil {
|
||||||
ctx.Error(http.StatusInternalServerError, err.Error())
|
ctx.Error(http.StatusInternalServerError, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -77,10 +77,10 @@ func CancelAbandonedJobs(ctx context.Context) error {
|
|||||||
for _, job := range jobs {
|
for _, job := range jobs {
|
||||||
job.Status = bots_model.StatusCancelled
|
job.Status = bots_model.StatusCancelled
|
||||||
job.Stopped = now
|
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")
|
_, err := bots_model.UpdateRunJob(ctx, job, nil, "status", "stopped")
|
||||||
return err
|
return err
|
||||||
}, ctx); 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
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user