diff --git a/code/utils.py b/code/utils.py index 6b645a2..fd59a08 100644 --- a/code/utils.py +++ b/code/utils.py @@ -31,9 +31,40 @@ def clone_repository( return dst_dir -def execute_runner_script(path: Path) -> None: - rs = RunnerScript.from_file(path) +def execute_script( + local_repo_dir: Path +) -> None: + # locate the script + script_path = ( + local_repo_dir / + '.gitea' / + 'gpu_runner' / + 'script.yml' + ) + # determine original working dir + org_dir = os.getcwd() + # initialise command list + cmd_list = [ + f'cd {local_repo_dir.resolve()}', + f'virtualenv -p python3.10 venv', + f'source venv/bin/activate', + ] + # add in runner script + rs = RunnerScript.from_file(path=script_path) for cmd in rs.script: - print(f'> {cmd}') - os.system(cmd) + cmd_list.append(cmd) + # append cleanup commands + cmd_list.append('deactivate') + cmd_list.append(f'cd {org_dir}') + cmd_list.append(f'rm -rf {local_repo_dir.resolve()}') + # build command string + cmd_str = ' && '.join(cmd_list) + os.system(cmd_str) logging.debug('finished') + + +if __name__ == '__main__': + local_repo_dir = Path(__file__).parent.parent / 'repo' / 'gpu_runner' + execute_script( + local_repo_dir=local_repo_dir + ) \ No newline at end of file