From 31ddd80fae99f2c4e7c25f8d3a5519a7b03d41f6 Mon Sep 17 00:00:00 2001 From: brb Date: Fri, 14 Jul 2023 14:52:49 +0200 Subject: [PATCH] updated function to run directly via os.system and not in subprocess --- code/utils.py | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) 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