summaryrefslogtreecommitdiffstats
path: root/runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'runner.py')
-rw-r--r--runner.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/runner.py b/runner.py
index d55310c..8fd406f 100644
--- a/runner.py
+++ b/runner.py
@@ -9,6 +9,7 @@ import itertools
import json
import logging
import os
+import re
import shutil
import sys
import traceback
@@ -404,6 +405,13 @@ async def run_work_item(
git_repository: git.Repository,
logger: logging.Logger,
) -> Optional[common.Error]:
+ error: Optional[common.Error]
+
+ submodule = get_submodule(work_item.repository)
+ match submodule:
+ case common.Error() as error:
+ return error
+
message = "Resetting the Qt repository"
logger.info(message)
await coordinator_connection.send_status(
@@ -411,7 +419,7 @@ async def run_work_item(
)
error = await reset_git_repository(
git_repository=git_repository,
- submodule=work_item.repository,
+ submodule=submodule,
revision=work_item.revision,
log_directory=work_item_directory,
retries=3,
@@ -429,7 +437,7 @@ async def run_work_item(
error = await qt.Module.configure(
build_directory=build_directory,
repository_directory=git_repository.directory,
- submodule=work_item.repository,
+ submodule=submodule,
log_directory=work_item_directory,
)
if error:
@@ -442,7 +450,7 @@ async def run_work_item(
)
module = await qt.Module.build(
build_directory=build_directory,
- submodule=work_item.repository,
+ submodule=submodule,
test_file=runner_mode.test_file,
log_directory=work_item_directory,
logger=logger,
@@ -502,6 +510,18 @@ async def run_work_item(
return None
+def get_submodule(work_item_repository: str) -> Union[common.Error, str]:
+ """
+ Get a submodule from a work item repository string.
+ """
+ match = re.match(pattern=r"qt/([^/]+)$", string=work_item_repository)
+ if not match:
+ return common.Error(f"Unsupported work item repository: {work_item_repository}")
+
+ submodule = match.group(1)
+ return submodule
+
+
async def reset_git_repository(
git_repository: git.Repository,
submodule: str,