mirror of
https://github.com/go-gitea/gitea
synced 2025-01-09 17:24:43 +00:00
feat: badge support tag
This commit is contained in:
parent
9880c1372e
commit
cbd4fb8a52
@ -374,10 +374,10 @@ func GetLatestRun(ctx context.Context, repoID int64) (*ActionRun, error) {
|
|||||||
return run, nil
|
return run, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetWorkflowLatestRun(ctx context.Context, repoID int64, workflowFile, branch, event string) (*ActionRun, error) {
|
func GetWorkflowLatestRun(ctx context.Context, repoID int64, workflowFile, ref, event string) (*ActionRun, error) {
|
||||||
var run ActionRun
|
var run ActionRun
|
||||||
q := db.GetEngine(ctx).Where("repo_id=?", repoID).
|
q := db.GetEngine(ctx).Where("repo_id = ?", repoID).
|
||||||
And("ref = ?", branch).
|
And("ref = ?", ref).
|
||||||
And("workflow_id = ?", workflowFile)
|
And("workflow_id = ?", workflowFile)
|
||||||
if event != "" {
|
if event != "" {
|
||||||
q.And("event = ?", event)
|
q.And("event = ?", event)
|
||||||
@ -386,7 +386,7 @@ func GetWorkflowLatestRun(ctx context.Context, repoID int64, workflowFile, branc
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
} else if !has {
|
} else if !has {
|
||||||
return nil, util.NewNotExistErrorf("run with repo_id %d, ref %s, workflow_id %s", repoID, branch, workflowFile)
|
return nil, util.NewNotExistErrorf("run with repo_id %d, ref %s, workflow_id %s", repoID, ref, workflowFile)
|
||||||
}
|
}
|
||||||
return &run, nil
|
return &run, nil
|
||||||
}
|
}
|
||||||
|
@ -19,13 +19,28 @@ import (
|
|||||||
func GetWorkflowBadge(ctx *context.Context) {
|
func GetWorkflowBadge(ctx *context.Context) {
|
||||||
workflowFile := ctx.PathParam("workflow_name")
|
workflowFile := ctx.PathParam("workflow_name")
|
||||||
branch := ctx.Req.URL.Query().Get("branch")
|
branch := ctx.Req.URL.Query().Get("branch")
|
||||||
if branch == "" {
|
tag := ctx.Req.URL.Query().Get("tag")
|
||||||
|
useLatestTag := ctx.Req.URL.Query().Has("latest_tag")
|
||||||
|
if branch == "" && tag == "" && !useLatestTag {
|
||||||
branch = ctx.Repo.Repository.DefaultBranch
|
branch = ctx.Repo.Repository.DefaultBranch
|
||||||
}
|
}
|
||||||
branchRef := fmt.Sprintf("refs/heads/%s", branch)
|
ref := fmt.Sprintf("refs/heads/%s", branch)
|
||||||
|
if branch == "" && tag != "" {
|
||||||
|
if useLatestTag {
|
||||||
|
tags, _, err := ctx.Repo.GitRepo.GetTagInfos(0, 1)
|
||||||
|
if err != nil {
|
||||||
|
ctx.ServerError("GetTagInfos", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(tags) != 0 {
|
||||||
|
tag = tags[0].Name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ref = fmt.Sprintf("refs/tags/%s", tag)
|
||||||
|
}
|
||||||
event := ctx.Req.URL.Query().Get("event")
|
event := ctx.Req.URL.Query().Get("event")
|
||||||
|
|
||||||
badge, err := getWorkflowBadge(ctx, workflowFile, branchRef, event)
|
badge, err := getWorkflowBadge(ctx, workflowFile, ref, event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.ServerError("GetWorkflowBadge", err)
|
ctx.ServerError("GetWorkflowBadge", err)
|
||||||
return
|
return
|
||||||
@ -36,11 +51,11 @@ func GetWorkflowBadge(ctx *context.Context) {
|
|||||||
ctx.HTML(http.StatusOK, "shared/actions/runner_badge")
|
ctx.HTML(http.StatusOK, "shared/actions/runner_badge")
|
||||||
}
|
}
|
||||||
|
|
||||||
func getWorkflowBadge(ctx *context.Context, workflowFile, branchName, event string) (badge.Badge, error) {
|
func getWorkflowBadge(ctx *context.Context, workflowFile, ref, event string) (badge.Badge, error) {
|
||||||
extension := filepath.Ext(workflowFile)
|
extension := filepath.Ext(workflowFile)
|
||||||
workflowName := strings.TrimSuffix(workflowFile, extension)
|
workflowName := strings.TrimSuffix(workflowFile, extension)
|
||||||
|
|
||||||
run, err := actions_model.GetWorkflowLatestRun(ctx, ctx.Repo.Repository.ID, workflowFile, branchName, event)
|
run, err := actions_model.GetWorkflowLatestRun(ctx, ctx.Repo.Repository.ID, workflowFile, ref, event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, util.ErrNotExist) {
|
if errors.Is(err, util.ErrNotExist) {
|
||||||
return badge.GenerateBadge(workflowName, "no status", badge.DefaultColor), nil
|
return badge.GenerateBadge(workflowName, "no status", badge.DefaultColor), nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user