mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-02-28 00:43:49 +00:00
feat: CustomExecutor Provide Custom Job Runner Implementation (#113)
This commit is contained in:
@@ -757,15 +757,19 @@ func (rc *RunContext) Executor() (common.Executor, error) {
|
||||
var executor common.Executor
|
||||
var jobType, err = rc.Run.Job().Type()
|
||||
|
||||
switch jobType {
|
||||
case model.JobTypeDefault:
|
||||
executor = newJobExecutor(rc, &stepFactoryImpl{}, rc)
|
||||
case model.JobTypeReusableWorkflowLocal:
|
||||
executor = newLocalReusableWorkflowExecutor(rc)
|
||||
case model.JobTypeReusableWorkflowRemote:
|
||||
executor = newRemoteReusableWorkflowExecutor(rc)
|
||||
case model.JobTypeInvalid:
|
||||
return nil, err
|
||||
if exec, ok := rc.Config.CustomExecutor[jobType]; ok {
|
||||
executor = exec(rc)
|
||||
} else {
|
||||
switch jobType {
|
||||
case model.JobTypeDefault:
|
||||
executor = newJobExecutor(rc, &stepFactoryImpl{}, rc)
|
||||
case model.JobTypeReusableWorkflowLocal:
|
||||
executor = newLocalReusableWorkflowExecutor(rc)
|
||||
case model.JobTypeReusableWorkflowRemote:
|
||||
executor = newRemoteReusableWorkflowExecutor(rc)
|
||||
case model.JobTypeInvalid:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return func(ctx context.Context) error {
|
||||
|
||||
@@ -66,6 +66,8 @@ type Config struct {
|
||||
ContainerNetworkMode docker_container.NetworkMode // the network mode of job containers (the value of --network)
|
||||
ActionCache ActionCache // Use a custom ActionCache Implementation
|
||||
HostEnvironmentDir string // Custom folder for host environment, parallel jobs must be 1
|
||||
|
||||
CustomExecutor map[model.JobType]func(*RunContext) common.Executor // Custom executor to run jobs
|
||||
}
|
||||
|
||||
func (runnerConfig *Config) GetGitHubServerURL() string {
|
||||
|
||||
Reference in New Issue
Block a user