diff --git a/services/web/Makefile b/services/web/Makefile index e0c6c13eaf..5edde09e7c 100644 --- a/services/web/Makefile +++ b/services/web/Makefile @@ -249,6 +249,31 @@ test_acceptance_modules_merged_inner: node test/acceptance/getModuleTargets test_acceptance_merged_inner \ ) +# inner loop for running saas tests in parallel +no_more_targets: + +# If we ever have more than 40 modules, we need to add _5 targets to all the places and have it START at 41. +test_acceptance_modules_merged_inner_1: export START=1 +test_acceptance_modules_merged_inner_2: export START=11 +test_acceptance_modules_merged_inner_3: export START=21 +test_acceptance_modules_merged_inner_4: export START=31 +TEST_ACCEPTANCE_MODULES_MERGED_INNER_SPLIT = \ + test_acceptance_modules_merged_inner_1 \ + test_acceptance_modules_merged_inner_2 \ + test_acceptance_modules_merged_inner_3 \ + test_acceptance_modules_merged_inner_4 \ + +# The node script prints one module per line. +# Using tail and head we skip over the first n=START entries and print the last 10. +# Finally we check with grep for any targets in a batch and print a fallback if none were found. +$(TEST_ACCEPTANCE_MODULES_MERGED_INNER_SPLIT): + $(MAKE) $(shell \ + SHARELATEX_CONFIG=$(BASE_CONFIG) \ + node test/acceptance/getModuleTargets test_acceptance_merged_inner \ + | tail -n+$(START) | head -n 10 \ + | grep -e . || echo no_more_targets \ + ) + # See docs for test_acceptance_server_ce how this works. test_acceptance_modules_merged_saas: export COMPOSE_PROJECT_NAME = \ acceptance_test_modules_merged_saas_$(BUILD_DIR_NAME) @@ -274,6 +299,28 @@ $(TEST_ACCEPTANCE_MODULES_MERGED_VARIANTS): $(DOCKER_COMPOSE) run --rm test_acceptance make test_acceptance_modules_merged_inner $(DOCKER_COMPOSE) down -v -t 0 +# outer loop for running saas tests in parallel +TEST_ACCEPTANCE_MODULES_MERGED_SPLIT_SAAS = \ + test_acceptance_modules_merged_saas_1 \ + test_acceptance_modules_merged_saas_2 \ + test_acceptance_modules_merged_saas_3 \ + test_acceptance_modules_merged_saas_4 \ + +test_acceptance_modules_merged_saas_1: export COMPOSE_PROJECT_NAME = \ + acceptance_test_modules_merged_saas_1_$(BUILD_DIR_NAME) +test_acceptance_modules_merged_saas_2: export COMPOSE_PROJECT_NAME = \ + acceptance_test_modules_merged_saas_2_$(BUILD_DIR_NAME) +test_acceptance_modules_merged_saas_3: export COMPOSE_PROJECT_NAME = \ + acceptance_test_modules_merged_saas_3_$(BUILD_DIR_NAME) +test_acceptance_modules_merged_saas_4: export COMPOSE_PROJECT_NAME = \ + acceptance_test_modules_merged_saas_4_$(BUILD_DIR_NAME) +$(TEST_ACCEPTANCE_MODULES_MERGED_SPLIT_SAAS): export BASE_CONFIG = $(CFG_SAAS) + +$(TEST_ACCEPTANCE_MODULES_MERGED_SPLIT_SAAS): test_acceptance_modules_merged_saas_%: + $(DOCKER_COMPOSE) down -v -t 0 + $(DOCKER_COMPOSE) run --rm test_acceptance make test_acceptance_modules_merged_inner_$* + $(DOCKER_COMPOSE) down -v -t 0 + test_acceptance_modules: $(TEST_ACCEPTANCE_MODULES_MERGED_VARIANTS) #