Makefile 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. all: test-e2e
  2. # We are updating the docker compose config via the host-admin service.
  3. # The host-admin service is running inside docker and has its own file-system layout.
  4. # We need to have both file-system layouts agree on the path for the docker compose project.
  5. # Notable the container labels com.docker.compose.project.working_dir and com.docker.compose.project.config_files need to match when creating containers from the docker host (how you started things) and from host-admin (how tests reconfigure the instance).
  6. export PWD = $(shell pwd)
  7. export TEX_LIVE_DOCKER_IMAGE ?= us-east1-docker.pkg.dev/overleaf-ops/ol-docker/texlive-full:2023.1
  8. export ALL_TEX_LIVE_DOCKER_IMAGES ?= us-east1-docker.pkg.dev/overleaf-ops/ol-docker/texlive-full:2023.1,us-east1-docker.pkg.dev/overleaf-ops/ol-docker/texlive-full:2022.1
  9. export IMAGE_TAG_PRO ?= us-east1-docker.pkg.dev/overleaf-ops/ol-docker/pro:latest
  10. export CYPRESS_SHARD ?=
  11. export COMPOSE_PROJECT_NAME ?= test
  12. test-e2e-native:
  13. docker compose -f docker-compose.yml -f docker-compose.native.yml up --no-log-prefix sharelatex host-admin -d
  14. CYPRESS_HOST_ADMIN_URL='http://localhost:8081' \
  15. CYPRESS_SAML_URL='http://localhost:8082' \
  16. CYPRESS_MAILTRAP_URL='http://localhost:8083' \
  17. npm run cypress:open
  18. test-e2e:
  19. docker compose build host-admin
  20. docker compose up -d host-admin
  21. docker compose up --no-log-prefix --exit-code-from=e2e e2e
  22. test-e2e-open:
  23. docker compose up -d host-admin
  24. docker compose up --no-log-prefix --exit-code-from=e2e-open e2e-open
  25. clean:
  26. docker compose down --volumes --timeout 0
  27. prefetch: prefetch_default
  28. prefetch_default: prefetch_default_compose
  29. prefetch_default_compose:
  30. docker compose pull e2e mongo redis
  31. prefetch_default: prefetch_default_compose_build
  32. prefetch_default_compose_build:
  33. docker compose build host-admin
  34. prefetch: prefetch_custom
  35. prefetch_custom: prefetch_custom_compose_pull
  36. prefetch_custom_compose_pull:
  37. docker compose pull saml ldap
  38. prefetch_custom: prefetch_custom_texlive
  39. prefetch_custom_texlive:
  40. echo "$$ALL_TEX_LIVE_DOCKER_IMAGES" | tr ',' '\n' | xargs -I% \
  41. sh -exc 'tag=%; re_tag=quay.io/sharelatex/$${tag#*/*/*/}; docker pull $$tag; docker tag $$tag $$re_tag'
  42. prefetch_custom: prefetch_old
  43. prefetch_old:
  44. docker pull $(IMAGE_TAG_PRO:latest=4.2)
  45. docker pull $(IMAGE_TAG_PRO:latest=5.0.1-RC1)
  46. docker pull $(IMAGE_TAG_PRO:latest=5.0)
  47. # Google Cloud Build runs on a very ancient Docker version that does not support the subdir flag.
  48. # Use services -> mailtrap -> build -> context = https://github.com/dbck/docker-mailtrap.git#v1.5.0:build in docker-compose.yml eventually.
  49. prefetch_default_compose_build: build_mailtrap
  50. build_mailtrap:
  51. git clone https://github.com/dbck/docker-mailtrap.git || true && cd docker-mailtrap && git checkout v1.5.0
  52. docker build -t mailtrap docker-mailtrap/build
  53. .PHONY: test-e2e test-e2e-open