1
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-04-08 17:05:45 +02:00

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
go.modgo.sum
models/bots
routers/api/bots

2
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

4
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=

@ -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
}

@ -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
}

@ -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 {