mirror of
https://gitea.com/gitea/runner.git
synced 2026-08-24 21:07:45 +00:00
e30c2fed62
- Raised go to 1.27 - Adopted json v2 - Sync lint config from gitea - Fixed all issues Co-authored-by: silverwind <me@silverwind.io> Reviewed-on: https://gitea.com/gitea/runner/pulls/1185 Reviewed-by: bircni <bircni@icloud.com> Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// Copyright 2022 The nektos/act Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package runner
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"gitea.dev/actionslib/pkg/model"
|
|
)
|
|
|
|
type stepFactory interface {
|
|
newStep(step *model.Step, rc *RunContext) (step, error)
|
|
}
|
|
|
|
type stepFactoryImpl struct{}
|
|
|
|
func (sf *stepFactoryImpl) newStep(stepModel *model.Step, rc *RunContext) (step, error) {
|
|
switch stepModel.Type() {
|
|
case model.StepTypeInvalid:
|
|
return nil, fmt.Errorf("invalid run/uses syntax for job:%s step:%+v", rc.Run, stepModel)
|
|
case model.StepTypeRun:
|
|
return &stepRun{
|
|
Step: stepModel,
|
|
RunContext: rc,
|
|
}, nil
|
|
case model.StepTypeUsesActionLocal:
|
|
return &stepActionLocal{
|
|
Step: stepModel,
|
|
RunContext: rc,
|
|
readAction: readActionImpl,
|
|
runAction: runActionImpl,
|
|
}, nil
|
|
case model.StepTypeUsesActionRemote:
|
|
return &stepActionRemote{
|
|
Step: stepModel,
|
|
RunContext: rc,
|
|
readAction: readActionImpl,
|
|
runAction: runActionImpl,
|
|
}, nil
|
|
case model.StepTypeUsesDockerURL:
|
|
return &stepDocker{
|
|
Step: stepModel,
|
|
RunContext: rc,
|
|
}, nil
|
|
}
|
|
|
|
return nil, fmt.Errorf("unable to determine how to run job:%s step:%+v", rc.Run, stepModel)
|
|
}
|