Makefile.module 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. BUILD_DIR_NAME ?= web
  2. export MODULE_NAME := $(notdir $(shell pwd))
  3. MODULE_DIR := modules/$(MODULE_NAME)
  4. PROJECT_NAME = web
  5. export RETRIES ?= $(if $(CI),3,0)
  6. export OVERLEAF_CONFIG = /overleaf/services/web/$(MODULE_DIR)/test/acceptance/config/settings.test.js
  7. export BASE_CONFIG ?= /overleaf/services/web/test/acceptance/config/settings.test.saas.js
  8. CFG_SAAS=/overleaf/services/web/test/acceptance/config/settings.test.saas.js
  9. CFG_SERVER_CE=/overleaf/services/web/test/acceptance/config/settings.test.server-ce.js
  10. CFG_SERVER_PRO=/overleaf/services/web/test/acceptance/config/settings.test.server-pro.js
  11. DOCKER_COMPOSE_FLAGS ?= -f docker-compose.yml
  12. DOCKER_COMPOSE := cd ../../ && \
  13. MODULE_DIR=$(MODULE_DIR) \
  14. BUILD_NUMBER=$(BUILD_NUMBER) \
  15. BRANCH_NAME=$(BRANCH_NAME) \
  16. PROJECT_NAME=$(PROJECT_NAME) \
  17. MOCHA_GREP=${MOCHA_GREP} \
  18. docker compose ${DOCKER_COMPOSE_FLAGS}
  19. ifeq (,$(wildcard test/unit))
  20. test_unit:
  21. else
  22. test_unit: export COMPOSE_PROJECT_NAME=unit_test_$(BUILD_DIR_NAME)_$(MODULE_NAME)
  23. test_unit:
  24. ${DOCKER_COMPOSE} run --rm test_unit yarn test:unit:run_dir -- ${MOCHA_ARGS} $(MODULE_DIR)/test/unit/src
  25. ${DOCKER_COMPOSE} down
  26. endif
  27. ALL_TEST_ACCEPTANCE_VARIANTS := \
  28. test_acceptance \
  29. test_acceptance_saas \
  30. test_acceptance_server_ce \
  31. test_acceptance_server_pro \
  32. ifeq (,$(wildcard test/acceptance))
  33. $(ALL_TEST_ACCEPTANCE_VARIANTS) test_acceptance_merged_inner:
  34. @echo
  35. @echo Module $(MODULE_NAME) does not have acceptance tests.
  36. @echo
  37. clean_test_acceptance:
  38. else
  39. ifeq ($(DEBUG),true)
  40. TEST_ACCEPTANCE_DEBUG_PORT := -p 127.0.0.1:19999:19999
  41. TEST_ACCEPTANCE_NPM_SCRIPT := test:acceptance:debug:run_dir
  42. else
  43. TEST_ACCEPTANCE_DEBUG_PORT :=
  44. TEST_ACCEPTANCE_NPM_SCRIPT := test:acceptance:run_dir
  45. endif
  46. test_acceptance_saas: export BASE_CONFIG = $(CFG_SAAS)
  47. test_acceptance_server_ce: export BASE_CONFIG = $(CFG_SERVER_CE)
  48. test_acceptance_server_pro: export BASE_CONFIG = $(CFG_SERVER_PRO)
  49. $(ALL_TEST_ACCEPTANCE_VARIANTS): export COMPOSE_PROJECT_NAME=acceptance_test_$(BUILD_DIR_NAME)_$(MODULE_NAME)
  50. $(ALL_TEST_ACCEPTANCE_VARIANTS):
  51. $(MAKE) --no-print-directory clean_test_acceptance
  52. ${DOCKER_COMPOSE} run --rm $(TEST_ACCEPTANCE_DEBUG_PORT) test_acceptance yarn $(TEST_ACCEPTANCE_NPM_SCRIPT) -- ${MOCHA_ARGS} $(MODULE_DIR)/test/acceptance/src
  53. $(MAKE) --no-print-directory clean_test_acceptance
  54. test_acceptance_merged_inner:
  55. cd ../../ && \
  56. yarn test:acceptance:run_dir -- ${MOCHA_ARGS} $(MODULE_DIR)/test/acceptance/src
  57. clean_test_acceptance: export COMPOSE_PROJECT_NAME=acceptance_test_$(BUILD_DIR_NAME)_$(MODULE_NAME)
  58. clean_test_acceptance:
  59. ${DOCKER_COMPOSE} down -v -t 0
  60. endif