From 68d416bd1bb0930d8bc425318a0c239255228ec5 Mon Sep 17 00:00:00 2001 From: "Bo-Yi.Wu" Date: Thu, 1 Sep 2022 21:44:05 +0800 Subject: [PATCH] chore(gRPC): initial request method Signed-off-by: Bo-Yi.Wu --- go.mod | 2 +- go.sum | 4 ++-- models/bots/build.go | 35 +++++++++++++++++-------------- routers/api/bots/runner/runner.go | 12 +++++------ routers/api/bots/socket.go | 4 ++-- 5 files changed, 29 insertions(+), 28 deletions(-) diff --git a/go.mod b/go.mod index 4a753a9ae3..a2594e4037 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( code.gitea.io/gitea-vet v0.2.2-0.20220122151748-48ebc902541b code.gitea.io/sdk/gitea v0.15.1 codeberg.org/gusted/mcaptcha v0.0.0-20220723083913-4f3072e1d570 - gitea.com/gitea/proto-go v0.0.0-20220828031749-616e40329b57 + gitea.com/gitea/proto-go v0.0.0-20220901061207-b88901a1b9bc gitea.com/go-chi/binding v0.0.0-20220309004920-114340dabecb gitea.com/go-chi/cache v0.2.0 gitea.com/go-chi/captcha v0.0.0-20211013065431-70641c1a35d5 diff --git a/go.sum b/go.sum index 58da3fc581..40f69b39f1 100644 --- a/go.sum +++ b/go.sum @@ -89,8 +89,8 @@ git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGy git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078 h1:cliQ4HHsCo6xi2oWZYKWW4bly/Ory9FuTpFPRxj/mAg= git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078/go.mod h1:g/V2Hjas6Z1UHUp4yIx6bATpNzJ7DYtD0FG3+xARWxs= -gitea.com/gitea/proto-go v0.0.0-20220828031749-616e40329b57 h1:eVM6m3h5KpmJM2+LEqroENFaMs2kAo8QNIPyMgho9jg= -gitea.com/gitea/proto-go v0.0.0-20220828031749-616e40329b57/go.mod h1:hD8YwSHusjwjEEgubW6XFvnZuNhMZTHz6lwjfltEt/Y= +gitea.com/gitea/proto-go v0.0.0-20220901061207-b88901a1b9bc h1:kTVjwKxXma2yAdgXz8T1tiJihtWFK8jGLqArX2NownM= +gitea.com/gitea/proto-go v0.0.0-20220901061207-b88901a1b9bc/go.mod h1:hD8YwSHusjwjEEgubW6XFvnZuNhMZTHz6lwjfltEt/Y= gitea.com/go-chi/binding v0.0.0-20220309004920-114340dabecb h1:Yy0Bxzc8R2wxiwXoG/rECGplJUSpXqCsog9PuJFgiHs= gitea.com/go-chi/binding v0.0.0-20220309004920-114340dabecb/go.mod h1:77TZu701zMXWJFvB8gvTbQ92zQ3DQq/H7l5wAEjQRKc= gitea.com/go-chi/cache v0.0.0-20210110083709-82c4c9ce2d5e/go.mod h1:k2V/gPDEtXGjjMGuBJiapffAXTv76H4snSmlJRLUhH0= diff --git a/models/bots/build.go b/models/bots/build.go index bfb097b3aa..c6d8185487 100644 --- a/models/bots/build.go +++ b/models/bots/build.go @@ -27,33 +27,36 @@ func init() { } // BuildStatus represents a build status -type BuildStatus int +type BuildStatus string // enumerate all the statuses of bot build const ( - BuildPending BuildStatus = iota // wait for assign - BuildAssigned // assigned to a runner - BuildRunning // running - BuildFailed - BuildFinished - BuildCanceled - BuildTimeout + StatusSkipped BuildStatus = "skipped" + StatusBlocked BuildStatus = "blocked" + StatusDeclined BuildStatus = "declined" + StatusWaiting BuildStatus = "waiting_on_dependencies" + StatusPending BuildStatus = "pending" + StatusRunning BuildStatus = "running" + StatusPassing BuildStatus = "success" + StatusFailing BuildStatus = "failure" + StatusKilled BuildStatus = "killed" + StatusError BuildStatus = "error" ) func (status BuildStatus) IsPending() bool { - return status == BuildPending || status == BuildAssigned + return status == StatusPending } func (status BuildStatus) IsRunning() bool { - return status == BuildRunning + return status == StatusRunning } func (status BuildStatus) IsFailed() bool { - return status == BuildFailed || status == BuildCanceled || status == BuildTimeout + return status == StatusFailing || status == StatusKilled || status == StatusError } func (status BuildStatus) IsSuccess() bool { - return status == BuildFinished + return status == StatusPassing } // Build represnets bot build task @@ -99,7 +102,7 @@ func updateRepoBuildsNumbers(ctx context.Context, repo *repo_model.Repository) e Where(builder.Eq{ "repo_id": repo.ID, }.And( - builder.In("status", BuildFailed, BuildCanceled, BuildTimeout, BuildFinished), + builder.In("status", StatusFailing, StatusKilled, StatusPassing), ), ), ). @@ -193,7 +196,7 @@ func GetCurBuildByID(runnerID int64) (*Build, error) { var builds []Build err := db.GetEngine(db.DefaultContext). Where("runner_id=?", runnerID). - And("status=?", BuildPending). + And("status=?", StatusPending). Asc("created"). Find(&builds) if err != nil { @@ -260,9 +263,9 @@ func (opts FindBuildOptions) toConds() builder.Cond { cond = cond.And(builder.Eq{"repo_id": opts.RepoID}) } if opts.IsClosed.IsTrue() { - cond = cond.And(builder.Expr("status IN (?,?,?,?)", BuildCanceled, BuildFailed, BuildTimeout, BuildFinished)) + cond = cond.And(builder.Expr("status IN (?,?,?,?)", StatusError, StatusFailing, StatusPassing)) } else if opts.IsClosed.IsFalse() { - cond = cond.And(builder.Expr("status IN (?,?,?)", BuildPending, BuildAssigned, BuildRunning)) + cond = cond.And(builder.Expr("status IN (?,?,?)", StatusPending, StatusRunning)) } return cond } diff --git a/routers/api/bots/runner/runner.go b/routers/api/bots/runner/runner.go index 1a84cb7c88..2bdcb2593a 100644 --- a/routers/api/bots/runner/runner.go +++ b/routers/api/bots/runner/runner.go @@ -58,14 +58,12 @@ func (s *Service) Register( return res, nil } -func (s *Service) Accept( +func (s *Service) Request( ctx context.Context, - req *connect.Request[runnerv1.AcceptRequest], -) (*connect.Response[runnerv1.AcceptResponse], error) { - log.Info("Request headers: %v", req.Header()) - res := connect.NewResponse(&runnerv1.AcceptResponse{ - JobId: 100, + req *connect.Request[runnerv1.RequestRequest], +) (*connect.Response[runnerv1.RequestResponse], error) { + res := connect.NewResponse(&runnerv1.RequestResponse{ + Stage: &runnerv1.Stage{}, }) - res.Header().Set("Gitea-Version", "runnerv1") return res, nil } diff --git a/routers/api/bots/socket.go b/routers/api/bots/socket.go index 7d508192d2..af1563b9a2 100644 --- a/routers/api/bots/socket.go +++ b/routers/api/bots/socket.go @@ -116,9 +116,9 @@ func handleVersion1(r *http.Request, c *websocket.Conn, mt int, message []byte, } cols := []string{"status", "end_time"} if msg.ErrCode == 0 { - build.Status = bots_model.BuildFinished + build.Status = bots_model.StatusPassing } else { - build.Status = bots_model.BuildFailed + build.Status = bots_model.StatusFailing } build.EndTime = timeutil.TimeStampNow() if err := bots_model.UpdateBuild(build, cols...); err != nil {