mirror of
https://code.forgejo.org/forgejo/runner.git
synced 2024-11-24 05:38:10 +03:00
chore(runner): update runner status when start job
This commit is contained in:
parent
d4c1515f4e
commit
7bebd2bbad
3 changed files with 32 additions and 7 deletions
|
@ -16,8 +16,10 @@ import (
|
|||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
const errorRetryCounterLimit = 3
|
||||
const errorRetryTimeSleepSecs = 30
|
||||
const (
|
||||
errorRetryCounterLimit = 3
|
||||
errorRetryTimeSleepSecs = 30
|
||||
)
|
||||
|
||||
var (
|
||||
ErrDataLock = errors.New("Data Lock Error")
|
||||
|
|
|
@ -170,15 +170,12 @@ func (r *Reporter) Close(lastWords string) error {
|
|||
}
|
||||
r.stateM.Unlock()
|
||||
|
||||
if err := retry.Do(func() error {
|
||||
return retry.Do(func() error {
|
||||
if err := r.ReportLog(true); err != nil {
|
||||
return err
|
||||
}
|
||||
return r.ReportState()
|
||||
}, retry.Context(r.ctx)); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}, retry.Context(r.ctx))
|
||||
}
|
||||
|
||||
func (r *Reporter) ReportLog(noMore bool) error {
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"gitea.com/gitea/act_runner/client"
|
||||
runnerv1 "gitea.com/gitea/proto-go/runner/v1"
|
||||
|
||||
"github.com/bufbuild/connect-go"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
@ -22,5 +23,30 @@ func (s *Runner) Run(ctx context.Context, task *runnerv1.Task) error {
|
|||
WithField("task.id", task.Id)
|
||||
l.Info("start running pipeline")
|
||||
|
||||
// update runner status
|
||||
// running: idle -> active
|
||||
// stopped: active -> idle
|
||||
if _, err := s.Client.UpdateRunner(
|
||||
ctx,
|
||||
connect.NewRequest(&runnerv1.UpdateRunnerRequest{
|
||||
Status: runnerv1.RunnerStatus_RUNNER_STATUS_ACTIVE,
|
||||
}),
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
l.Info("update runner status to active")
|
||||
defer func() {
|
||||
if _, err := s.Client.UpdateRunner(
|
||||
ctx,
|
||||
connect.NewRequest(&runnerv1.UpdateRunnerRequest{
|
||||
Status: runnerv1.RunnerStatus_RUNNER_STATUS_IDLE,
|
||||
}),
|
||||
); err != nil {
|
||||
log.Errorln("update status error:", err.Error())
|
||||
}
|
||||
l.Info("update runner status to idle")
|
||||
}()
|
||||
|
||||
return NewTask(task.Id, s.Client).Run(ctx, task)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue