func (e *machineExecutor) Prepare(globalConfig *common.Config, config *common.RunnerConfig, build *common.Build) (err error) { e.build = build // Use the machine e.config, e.data, err = e.provider.Use(config, build.ExecutorData) if err != nil { return err } // TODO: Currently the docker-machine doesn't support multiple builds build.ProjectRunnerID = 0 if details, _ := build.ExecutorData.(*machineDetails); details != nil { build.Hostname = details.Name } else if details, _ := e.data.(*machineDetails); details != nil { build.Hostname = details.Name } e.log().Infoln("Starting docker-machine build...") // Create original executor e.executor = e.provider.provider.Create() if e.executor == nil { return errors.New("failed to create an executor") } return e.executor.Prepare(globalConfig, &e.config, build) }