chore(gRPC): initial request method

Signed-off-by: Bo-Yi.Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi.Wu 2022-09-01 21:44:05 +08:00 committed by Jason Song
parent e07d416366
commit 68d416bd1b
5 changed files with 29 additions and 28 deletions

2
go.mod
View File

@ -6,7 +6,7 @@ require (
code.gitea.io/gitea-vet v0.2.2-0.20220122151748-48ebc902541b code.gitea.io/gitea-vet v0.2.2-0.20220122151748-48ebc902541b
code.gitea.io/sdk/gitea v0.15.1 code.gitea.io/sdk/gitea v0.15.1
codeberg.org/gusted/mcaptcha v0.0.0-20220723083913-4f3072e1d570 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/binding v0.0.0-20220309004920-114340dabecb
gitea.com/go-chi/cache v0.2.0 gitea.com/go-chi/cache v0.2.0
gitea.com/go-chi/captcha v0.0.0-20211013065431-70641c1a35d5 gitea.com/go-chi/captcha v0.0.0-20211013065431-70641c1a35d5

4
go.sum
View File

@ -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.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 h1:cliQ4HHsCo6xi2oWZYKWW4bly/Ory9FuTpFPRxj/mAg=
git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078/go.mod h1:g/V2Hjas6Z1UHUp4yIx6bATpNzJ7DYtD0FG3+xARWxs= 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-20220901061207-b88901a1b9bc h1:kTVjwKxXma2yAdgXz8T1tiJihtWFK8jGLqArX2NownM=
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/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 h1:Yy0Bxzc8R2wxiwXoG/rECGplJUSpXqCsog9PuJFgiHs=
gitea.com/go-chi/binding v0.0.0-20220309004920-114340dabecb/go.mod h1:77TZu701zMXWJFvB8gvTbQ92zQ3DQq/H7l5wAEjQRKc= 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= gitea.com/go-chi/cache v0.0.0-20210110083709-82c4c9ce2d5e/go.mod h1:k2V/gPDEtXGjjMGuBJiapffAXTv76H4snSmlJRLUhH0=

View File

@ -27,33 +27,36 @@ func init() {
} }
// BuildStatus represents a build status // BuildStatus represents a build status
type BuildStatus int type BuildStatus string
// enumerate all the statuses of bot build // enumerate all the statuses of bot build
const ( const (
BuildPending BuildStatus = iota // wait for assign StatusSkipped BuildStatus = "skipped"
BuildAssigned // assigned to a runner StatusBlocked BuildStatus = "blocked"
BuildRunning // running StatusDeclined BuildStatus = "declined"
BuildFailed StatusWaiting BuildStatus = "waiting_on_dependencies"
BuildFinished StatusPending BuildStatus = "pending"
BuildCanceled StatusRunning BuildStatus = "running"
BuildTimeout StatusPassing BuildStatus = "success"
StatusFailing BuildStatus = "failure"
StatusKilled BuildStatus = "killed"
StatusError BuildStatus = "error"
) )
func (status BuildStatus) IsPending() bool { func (status BuildStatus) IsPending() bool {
return status == BuildPending || status == BuildAssigned return status == StatusPending
} }
func (status BuildStatus) IsRunning() bool { func (status BuildStatus) IsRunning() bool {
return status == BuildRunning return status == StatusRunning
} }
func (status BuildStatus) IsFailed() bool { func (status BuildStatus) IsFailed() bool {
return status == BuildFailed || status == BuildCanceled || status == BuildTimeout return status == StatusFailing || status == StatusKilled || status == StatusError
} }
func (status BuildStatus) IsSuccess() bool { func (status BuildStatus) IsSuccess() bool {
return status == BuildFinished return status == StatusPassing
} }
// Build represnets bot build task // Build represnets bot build task
@ -99,7 +102,7 @@ func updateRepoBuildsNumbers(ctx context.Context, repo *repo_model.Repository) e
Where(builder.Eq{ Where(builder.Eq{
"repo_id": repo.ID, "repo_id": repo.ID,
}.And( }.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 var builds []Build
err := db.GetEngine(db.DefaultContext). err := db.GetEngine(db.DefaultContext).
Where("runner_id=?", runnerID). Where("runner_id=?", runnerID).
And("status=?", BuildPending). And("status=?", StatusPending).
Asc("created"). Asc("created").
Find(&builds) Find(&builds)
if err != nil { if err != nil {
@ -260,9 +263,9 @@ func (opts FindBuildOptions) toConds() builder.Cond {
cond = cond.And(builder.Eq{"repo_id": opts.RepoID}) cond = cond.And(builder.Eq{"repo_id": opts.RepoID})
} }
if opts.IsClosed.IsTrue() { 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() { } 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 return cond
} }

View File

@ -58,14 +58,12 @@ func (s *Service) Register(
return res, nil return res, nil
} }
func (s *Service) Accept( func (s *Service) Request(
ctx context.Context, ctx context.Context,
req *connect.Request[runnerv1.AcceptRequest], req *connect.Request[runnerv1.RequestRequest],
) (*connect.Response[runnerv1.AcceptResponse], error) { ) (*connect.Response[runnerv1.RequestResponse], error) {
log.Info("Request headers: %v", req.Header()) res := connect.NewResponse(&runnerv1.RequestResponse{
res := connect.NewResponse(&runnerv1.AcceptResponse{ Stage: &runnerv1.Stage{},
JobId: 100,
}) })
res.Header().Set("Gitea-Version", "runnerv1")
return res, nil return res, nil
} }

View File

@ -116,9 +116,9 @@ func handleVersion1(r *http.Request, c *websocket.Conn, mt int, message []byte,
} }
cols := []string{"status", "end_time"} cols := []string{"status", "end_time"}
if msg.ErrCode == 0 { if msg.ErrCode == 0 {
build.Status = bots_model.BuildFinished build.Status = bots_model.StatusPassing
} else { } else {
build.Status = bots_model.BuildFailed build.Status = bots_model.StatusFailing
} }
build.EndTime = timeutil.TimeStampNow() build.EndTime = timeutil.TimeStampNow()
if err := bots_model.UpdateBuild(build, cols...); err != nil { if err := bots_model.UpdateBuild(build, cols...); err != nil {