code.gitea.io/gitea@v1.21.7/models/actions/task_step.go (about)

     1  // Copyright 2022 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package actions
     5  
     6  import (
     7  	"context"
     8  	"time"
     9  
    10  	"code.gitea.io/gitea/models/db"
    11  	"code.gitea.io/gitea/modules/timeutil"
    12  )
    13  
    14  // ActionTaskStep represents a step of ActionTask
    15  type ActionTaskStep struct {
    16  	ID        int64
    17  	Name      string `xorm:"VARCHAR(255)"`
    18  	TaskID    int64  `xorm:"index unique(task_index)"`
    19  	Index     int64  `xorm:"index unique(task_index)"`
    20  	RepoID    int64  `xorm:"index"`
    21  	Status    Status `xorm:"index"`
    22  	LogIndex  int64
    23  	LogLength int64
    24  	Started   timeutil.TimeStamp
    25  	Stopped   timeutil.TimeStamp
    26  	Created   timeutil.TimeStamp `xorm:"created"`
    27  	Updated   timeutil.TimeStamp `xorm:"updated"`
    28  }
    29  
    30  func (step *ActionTaskStep) Duration() time.Duration {
    31  	return calculateDuration(step.Started, step.Stopped, step.Status)
    32  }
    33  
    34  func init() {
    35  	db.RegisterModel(new(ActionTaskStep))
    36  }
    37  
    38  func GetTaskStepsByTaskID(ctx context.Context, taskID int64) ([]*ActionTaskStep, error) {
    39  	var steps []*ActionTaskStep
    40  	return steps, db.GetEngine(ctx).Where("task_id=?", taskID).OrderBy("`index` ASC").Find(&steps)
    41  }