summaryrefslogtreecommitdiff
path: root/buildscripts/evergreen_gen_multiversion_tests.py
diff options
context:
space:
mode:
authorRichard Samuels <richard.samuels@mongodb.com>2020-05-26 17:02:44 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-06-01 17:06:46 +0000
commitae39837dc5bd5963172bd65ec0227c29cfd29042 (patch)
tree6cf1553f7baf8c1cb2acde47f4968014b96088b7 /buildscripts/evergreen_gen_multiversion_tests.py
parentd74e83b8ab66d4584d4ab2082ee9c123f35dbfd2 (diff)
downloadmongo-ae39837dc5bd5963172bd65ec0227c29cfd29042.tar.gz
SERVER-48188 Allow multiversion *_gen tasks to be rerun without fail
Diffstat (limited to 'buildscripts/evergreen_gen_multiversion_tests.py')
-rwxr-xr-xbuildscripts/evergreen_gen_multiversion_tests.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/buildscripts/evergreen_gen_multiversion_tests.py b/buildscripts/evergreen_gen_multiversion_tests.py
index f66e908a68a..8687cc617a9 100755
--- a/buildscripts/evergreen_gen_multiversion_tests.py
+++ b/buildscripts/evergreen_gen_multiversion_tests.py
@@ -28,6 +28,8 @@ import buildscripts.evergreen_generate_resmoke_tasks as generate_resmoke
from buildscripts.evergreen_generate_resmoke_tasks import Suite, ConfigOptions
import buildscripts.evergreen_gen_fuzzer_tests as gen_fuzzer
+# pylint: disable=len-as-condition
+
LOGGER = structlog.getLogger(__name__)
REQUIRED_CONFIG_KEYS = {
@@ -361,6 +363,11 @@ class EvergreenMultiversionConfigGenerator(object):
shrub_project.add_build_variant(build_variant)
write_file_to_dir(CONFIG_DIR, f"{self.task}.json", shrub_project.json())
+ if len(os.listdir(CONFIG_DIR)) == 0:
+ raise RuntimeError(
+ f"Multiversion suite generator unexpectedly yielded no configuration in '{CONFIG_DIR}'"
+ )
+
@click.group()
def main():
@@ -433,6 +440,11 @@ def generate_exclude_yaml(suite: str, task_path_suffix: str, is_generated_suite:
suite_yaml_dict[file_name] = generate_resmoke.generate_resmoke_suite_config(
suite_config, file_name, excludes=list(files_to_exclude))
else:
+ if not os.path.exists(CONFIG_DIR) or len(os.listdir(CONFIG_DIR)) == 0:
+ LOGGER.info(
+ f"No configuration files exist in '{CONFIG_DIR}'. Skipping exclude file generation")
+ return
+
# We expect the generated suites to already have been generated in the generated config
# directory.
suites_dir = CONFIG_DIR