summaryrefslogtreecommitdiffstats
path: root/runner.py
diff options
context:
space:
mode:
authorAudun Sutterud <[email protected]>2025-06-02 10:22:37 +0200
committerAudun Sutterud <[email protected]>2025-06-12 06:48:32 +0000
commitf359832cea11a7ebcc1ebf1cfee123da22304278 (patch)
treec22c6397c6c7bed1e9de05222c343fd6ac1ce979 /runner.py
parent58acc0dc1ecb6c9a42c1860857a57ae323f07037 (diff)
Fix handling of repository namesHEADdev
The runner does not take into account that names start with "qt/". Change-Id: I741903a038b098a220f891d93900070ecfb99706 Reviewed-by: Daniel Smith <[email protected]>
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,