1
1
mirror of https://github.com/go-gitea/gitea synced 2025-09-28 03:28:13 +00:00

refactor: move build status to core package

This commit is contained in:
Bo-Yi.Wu
2022-09-03 16:48:03 +08:00
committed by Jason Song
parent ea0cf8515e
commit 1148903d79
7 changed files with 56 additions and 50 deletions

View File

@@ -16,6 +16,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/timeutil"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/routers/api/bots/core"
"github.com/google/uuid"
"xorm.io/builder"
@@ -26,39 +27,6 @@ func init() {
db.RegisterModel(new(BuildIndex))
}
// BuildStatus represents a build status
type BuildStatus string
// enumerate all the statuses of bot build
const (
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 == StatusPending
}
func (status BuildStatus) IsRunning() bool {
return status == StatusRunning
}
func (status BuildStatus) IsFailed() bool {
return status == StatusFailing || status == StatusKilled || status == StatusError
}
func (status BuildStatus) IsSuccess() bool {
return status == StatusPassing
}
// Build represnets bot build task
type Build struct {
ID int64
@@ -75,7 +43,7 @@ type Build struct {
Grant string // permissions for this task
EventPayload string `xorm:"LONGTEXT"`
RunnerID int64 `xorm:"index"`
Status BuildStatus `xorm:"index"`
Status core.BuildStatus `xorm:"index"`
Created timeutil.TimeStamp `xorm:"created"`
StartTime timeutil.TimeStamp
EndTime timeutil.TimeStamp
@@ -102,7 +70,7 @@ func updateRepoBuildsNumbers(ctx context.Context, repo *repo_model.Repository) e
Where(builder.Eq{
"repo_id": repo.ID,
}.And(
builder.In("status", StatusFailing, StatusKilled, StatusPassing),
builder.In("status", core.StatusFailing, core.StatusKilled, core.StatusPassing),
),
),
).
@@ -111,7 +79,7 @@ func updateRepoBuildsNumbers(ctx context.Context, repo *repo_model.Repository) e
}
// InsertBuild inserts a bot build task
func InsertBuild(t *Build, workflowsStatuses map[string]map[string]BuildStatus) error {
func InsertBuild(t *Build, workflowsStatuses map[string]map[string]core.BuildStatus) error {
if t.UUID == "" {
t.UUID = uuid.New().String()
}
@@ -196,7 +164,7 @@ func GetCurBuildByID(runnerID int64) (*Build, error) {
var builds []Build
err := db.GetEngine(db.DefaultContext).
Where("runner_id=?", runnerID).
And("status=?", StatusPending).
And("status=?", core.StatusPending).
Asc("created").
Find(&builds)
if err != nil {
@@ -263,9 +231,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 (?,?,?,?)", StatusError, StatusFailing, StatusPassing))
cond = cond.And(builder.Expr("status IN (?,?,?,?)", core.StatusError, core.StatusFailing, core.StatusPassing))
} else if opts.IsClosed.IsFalse() {
cond = cond.And(builder.Expr("status IN (?,?,?)", StatusPending, StatusRunning))
cond = cond.And(builder.Expr("status IN (?,?,?)", core.StatusPending, core.StatusRunning))
}
return cond
}