mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-21 05:54:38 +02:00
use cached task instance if available
This commit is contained in:
parent
20f5d6ee95
commit
a178e4be7a
@ -1000,9 +1000,9 @@ func GetWorkflowRun(ctx *context.APIContext) {
|
|||||||
// "$ref": "#/responses/notFound"
|
// "$ref": "#/responses/notFound"
|
||||||
|
|
||||||
runID := ctx.PathParamInt64("run")
|
runID := ctx.PathParamInt64("run")
|
||||||
job, _, _ := db.GetByID[actions_model.ActionRun](ctx, runID)
|
job, _, err := db.GetByID[actions_model.ActionRun](ctx, runID)
|
||||||
|
|
||||||
if job.RepoID != ctx.Repo.Repository.ID {
|
if err != nil || job.RepoID != ctx.Repo.Repository.ID {
|
||||||
ctx.APIError(http.StatusNotFound, util.ErrNotExist)
|
ctx.APIError(http.StatusNotFound, util.ErrNotExist)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1070,7 +1070,7 @@ func GetWorkflowJobs(ctx *context.APIContext) {
|
|||||||
|
|
||||||
res.Entries = make([]*api.ActionWorkflowJob, len(artifacts))
|
res.Entries = make([]*api.ActionWorkflowJob, len(artifacts))
|
||||||
for i := range artifacts {
|
for i := range artifacts {
|
||||||
convertedWorkflowJob, err := convert.ToActionWorkflowJob(ctx, ctx.Repo.Repository, artifacts[i])
|
convertedWorkflowJob, err := convert.ToActionWorkflowJob(ctx, ctx.Repo.Repository, nil, artifacts[i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.APIErrorInternal(err)
|
ctx.APIErrorInternal(err)
|
||||||
return
|
return
|
||||||
@ -1113,13 +1113,13 @@ func GetWorkflowJob(ctx *context.APIContext) {
|
|||||||
// "$ref": "#/responses/notFound"
|
// "$ref": "#/responses/notFound"
|
||||||
|
|
||||||
jobID := ctx.PathParamInt64("job_id")
|
jobID := ctx.PathParamInt64("job_id")
|
||||||
job, _, _ := db.GetByID[actions_model.ActionRunJob](ctx, jobID)
|
job, _, err := db.GetByID[actions_model.ActionRunJob](ctx, jobID)
|
||||||
|
|
||||||
if job.RepoID != ctx.Repo.Repository.ID {
|
if err != nil || job.RepoID != ctx.Repo.Repository.ID {
|
||||||
ctx.APIError(http.StatusNotFound, util.ErrNotExist)
|
ctx.APIError(http.StatusNotFound, util.ErrNotExist)
|
||||||
}
|
}
|
||||||
|
|
||||||
convertedWorkflowJob, err := convert.ToActionWorkflowJob(ctx, ctx.Repo.Repository, job)
|
convertedWorkflowJob, err := convert.ToActionWorkflowJob(ctx, ctx.Repo.Repository, nil, job)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.APIErrorInternal(err)
|
ctx.APIErrorInternal(err)
|
||||||
return
|
return
|
||||||
|
@ -276,7 +276,9 @@ func ToActionsStatus(status actions_model.Status) (string, string) {
|
|||||||
return action, conclusion
|
return action, conclusion
|
||||||
}
|
}
|
||||||
|
|
||||||
func ToActionWorkflowJob(ctx context.Context, repo *repo_model.Repository, job *actions_model.ActionRunJob) (*api.ActionWorkflowJob, error) {
|
// ToActionWorkflowJob convert a actions_model.ActionRunJob to an api.ActionWorkflowJob
|
||||||
|
// task is optional and can be nil
|
||||||
|
func ToActionWorkflowJob(ctx context.Context, repo *repo_model.Repository, task *actions_model.ActionTask, job *actions_model.ActionRunJob) (*api.ActionWorkflowJob, error) {
|
||||||
err := job.LoadAttributes(ctx)
|
err := job.LoadAttributes(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -300,7 +302,12 @@ func ToActionWorkflowJob(ctx context.Context, repo *repo_model.Repository, job *
|
|||||||
var steps []*api.ActionWorkflowStep
|
var steps []*api.ActionWorkflowStep
|
||||||
|
|
||||||
if job.TaskID != 0 {
|
if job.TaskID != 0 {
|
||||||
task, _, _ := db.GetByID[actions_model.ActionTask](ctx, job.TaskID)
|
if task == nil {
|
||||||
|
task, _, err = db.GetByID[actions_model.ActionTask](ctx, job.TaskID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
runnerID = task.RunnerID
|
runnerID = task.RunnerID
|
||||||
if runner, ok, _ := db.GetByID[actions_model.ActionRunner](ctx, runnerID); ok {
|
if runner, ok, _ := db.GetByID[actions_model.ActionRunner](ctx, runnerID); ok {
|
||||||
|
@ -956,7 +956,7 @@ func (*webhookNotifier) WorkflowJobStatusUpdate(ctx context.Context, repo *repo_
|
|||||||
|
|
||||||
status, _ := convert.ToActionsStatus(job.Status)
|
status, _ := convert.ToActionsStatus(job.Status)
|
||||||
|
|
||||||
convertedJob, err := convert.ToActionWorkflowJob(ctx, repo, job)
|
convertedJob, err := convert.ToActionWorkflowJob(ctx, repo, task, job)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("ToActionWorkflowJob: %v", err)
|
log.Error("ToActionWorkflowJob: %v", err)
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user