Makefile.module 2.6 KB

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