# Runners Runners are responsible to execute a list of commands in a set environment defined in the CI yaml file. ## List of runners * Python - executes python commands in a virtual environment * Docker - executes each job in a separate Docker container - unimplemented ## Import schema TODO ## Runner API Each runner has to support the following functions: ### Constructor(params, user_defaults) * params: dict of runtime variables for the program itself * user_defaults: raw data from the CI file's global dict, augmented with an "env" dict, which contains environment variables from the host sytem, the CLI params and the pipeline global config, and....? TODO: Clean up workdir as a concept, who should hold it, if any,and how shall it be passed to runners, if necessary. It is - workdir can be assigned at CI yaml level as global Order: By default: os.cwd() if overwritten in global ------------------------------- Below this level is the runner's responsibility if owerwritten in runner if overwritten in job Runner shall receive the current working directory, unless stated otherwise in global config