summaryrefslogtreecommitdiff
path: root/buildscripts
diff options
context:
space:
mode:
authorRobert Guo <robert.guo@mongodb.com>2021-10-13 23:51:06 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-14 14:51:05 +0000
commit93079f2bbaa7221f167abb3bdebe8dea4ec080c9 (patch)
tree4f3a4c5f29d9b283973be11460a472363fd8b142 /buildscripts
parent74f672aee4380f63ff8053ffe18f1c50fd7ce83c (diff)
downloadmongo-93079f2bbaa7221f167abb3bdebe8dea4ec080c9.tar.gz
SERVER-60683 allow options to be forwarded to evergreen_gen_build_variant.py
Diffstat (limited to 'buildscripts')
-rw-r--r--buildscripts/evergreen_gen_build_variant.py10
-rw-r--r--buildscripts/task_generation/resmoke_proxy.py4
2 files changed, 9 insertions, 5 deletions
diff --git a/buildscripts/evergreen_gen_build_variant.py b/buildscripts/evergreen_gen_build_variant.py
index 972e40a8ea3..c64bd5538b3 100644
--- a/buildscripts/evergreen_gen_build_variant.py
+++ b/buildscripts/evergreen_gen_build_variant.py
@@ -3,7 +3,7 @@
from concurrent.futures import ThreadPoolExecutor as Executor
from datetime import datetime, timedelta
from time import perf_counter
-from typing import Optional, Any, Set
+from typing import Optional, Any, Set, Tuple
import click
import inject
@@ -19,6 +19,7 @@ from buildscripts.task_generation.constants import MAX_WORKERS, LOOKBACK_DURATIO
from buildscripts.task_generation.evg_config_builder import EvgConfigBuilder
from buildscripts.task_generation.gen_config import GenerationConfiguration
from buildscripts.task_generation.gen_task_validation import GenTaskValidationService
+from buildscripts.task_generation.resmoke_proxy import ResmokeProxyService
from buildscripts.task_generation.suite_split import SuiteSplitConfig, SuiteSplitParameters
from buildscripts.task_generation.suite_split_strategies import SplitStrategy, FallbackStrategy, \
greedy_division, round_robin_fallback
@@ -340,7 +341,7 @@ class GenerateBuildVariantOrchestrator:
return len(results)
-@click.command()
+@click.command(context_settings=dict(ignore_unknown_options=True))
@click.option("--expansion-file", type=str, required=True,
help="Location of expansions file generated by evergreen.")
@click.option("--evg-api-config", type=str, required=True,
@@ -349,8 +350,9 @@ class GenerateBuildVariantOrchestrator:
help="Location of Evergreen project configuration.")
@click.option("--output-file", type=str, help="Name of output file to write.")
@click.option("--verbose", is_flag=True, default=False, help="Enable verbose logging.")
+@click.argument('resmoke_run_args', nargs=-1, type=click.UNPROCESSED)
def main(expansion_file: str, evg_api_config: str, evg_project_config: str, output_file: str,
- verbose: bool) -> None:
+ verbose: bool, resmoke_run_args: Tuple[str]) -> None:
"""
Generate task configuration for a build variant.
\f
@@ -359,6 +361,7 @@ def main(expansion_file: str, evg_api_config: str, evg_project_config: str, outp
:param evg_project_config: Location of file containing evergreen project configuration.
:param output_file: Location to write generated configuration to.
:param verbose: Should verbose logging be used.
+ :param resmoke_run_args: Args to forward to `resmoke.py run`.
"""
enable_logging(verbose)
@@ -377,6 +380,7 @@ def main(expansion_file: str, evg_api_config: str, evg_project_config: str, outp
binder.bind(EvergreenApi, RetryingEvergreenApi.get_api(config_file=evg_api_config))
binder.bind(EvergreenProjectConfig, parse_evergreen_file(evg_project_config))
binder.bind(GenerationConfiguration, GenerationConfiguration.from_yaml_file())
+ binder.bind(ResmokeProxyService, ResmokeProxyService(" ".join(resmoke_run_args)))
inject.configure(dependencies)
diff --git a/buildscripts/task_generation/resmoke_proxy.py b/buildscripts/task_generation/resmoke_proxy.py
index 34a30c0ae02..d9e521a328b 100644
--- a/buildscripts/task_generation/resmoke_proxy.py
+++ b/buildscripts/task_generation/resmoke_proxy.py
@@ -26,9 +26,9 @@ class ResmokeProxyService:
"""A service to proxy requests to resmoke."""
@inject.autoparams()
- def __init__(self) -> None:
+ def __init__(self, run_options="") -> None:
"""Initialize the service."""
- _parser.set_run_options()
+ _parser.set_run_options(run_options)
self._suite_config = _suiteconfig
def list_tests(self, suite_name: str) -> List[str]: