mirror of
https://code.forgejo.org/forgejo/runner.git
synced 2025-08-11 17:50:58 +00:00
It will be imported by Forgejo. <!--start release-notes-assistant--> <!--URL:https://code.forgejo.org/forgejo/runner--> - other - [PR](https://code.forgejo.org/forgejo/runner/pulls/777): <!--number 777 --><!--line 0 --><!--description Y2hvcmU6IHRvIGFsbG93IHRoZSBydW5uZXIgdG8gYmUgaW1wb3J0ZWQsIHY5IG5lZWRzIHRvIGJlIGluIHRoZSBnbyBtb2R1bGU=-->chore: to allow the runner to be imported, v9 needs to be in the go module<!--description--> <!--end release-notes-assistant--> Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/777 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Co-authored-by: Earl Warren <contact@earl-warren.org> Co-committed-by: Earl Warren <contact@earl-warren.org>
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package runner
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"code.forgejo.org/forgejo/runner/v9/act/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)
|
|
}
|