mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 09:09:36 +02:00
[monorepo] Try to get make install working in copilot (#32800)
* [monorepo] move building of nginx proxy into Makefile * [v1] add fake-secrets.env * [github] add copilot-setup-steps.yml workflow * [make] debug permissions * [monorepo] use the host uid/gid for monorepo service * [web] populate DOCKER_USER for test_frontend_ct * [github] run npm install outside docker in Copilot sandbox * [monorepo] add comment for building nginx-proxy image locally * [monorepo] change uid/gid of node user in cypress image * [monorepo] low-level rewrite of passwd and groups to match host user GitOrigin-RevId: d74a5801f0318bab7e7f460374255426706002a3
This commit is contained in:
12
dockerfiles/cypress/Dockerfile
Normal file
12
dockerfiles/cypress/Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
||||
FROM cypress/included:13.13.2
|
||||
ARG USER_UID=1000
|
||||
ARG USER_GID=1000
|
||||
|
||||
WORKDIR /overleaf
|
||||
|
||||
RUN sed -i s/node:x:1000:/node:x:${USER_GID}:/ /etc/group \
|
||||
&& sed -i s_node:x:1000:1000::/home/node:/bin/bash_node:x:${USER_UID}:${USER_GID}::/home/node:/bin/bash_ /etc/passwd \
|
||||
&& chown -R node:node /home/node \
|
||||
&& chown node:node /overleaf
|
||||
|
||||
USER node
|
||||
@@ -13,7 +13,8 @@ export IMAGE_TAG_CE ?= sharelatex/sharelatex:main
|
||||
export IMAGE_TAG_PRO ?= us-east1-docker.pkg.dev/overleaf-ops/ol-docker/pro:main
|
||||
export CYPRESS_SHARD ?=
|
||||
export COMPOSE_PROJECT_NAME ?= test
|
||||
export DOCKER_USER := $(shell id -u):$(shell id -g)
|
||||
export USER_UID=$(shell id -u)
|
||||
export USER_GID=$(shell id -g)
|
||||
IMAGE_TAG_PRO_BASE := $(shell echo $(IMAGE_TAG_PRO) | sed -E s/:.+//)
|
||||
|
||||
test-e2e-native:
|
||||
@@ -106,4 +107,8 @@ build_mailtrap:
|
||||
git clone https://github.com/dbck/docker-mailtrap.git || true && cd docker-mailtrap && git checkout v1.5.0
|
||||
docker build -t mailtrap docker-mailtrap/build
|
||||
|
||||
prefetch_default_compose_build: build_cypress
|
||||
build_cypress:
|
||||
docker compose build e2e
|
||||
|
||||
.PHONY: test-e2e test-e2e-open
|
||||
|
||||
@@ -25,7 +25,11 @@ services:
|
||||
|
||||
# For testing "native" on Linux
|
||||
cypress:
|
||||
image: cypress/included:13.13.2
|
||||
build:
|
||||
context: ../../dockerfiles/cypress
|
||||
args:
|
||||
- USER_UID
|
||||
- USER_GID
|
||||
volumes:
|
||||
- ../../:/overleaf
|
||||
- /tmp/.X11-unix:/tmp/.X11-unix
|
||||
@@ -33,7 +37,6 @@ services:
|
||||
working_dir: /overleaf/server-ce/test
|
||||
entrypoint: npm
|
||||
command: run cypress:open
|
||||
user: "${DOCKER_USER:-1000:1000}"
|
||||
environment:
|
||||
CI:
|
||||
VERBOSE_LOGGING:
|
||||
|
||||
@@ -66,7 +66,11 @@ services:
|
||||
command: ["/server-pro-start.sh"]
|
||||
|
||||
e2e:
|
||||
image: cypress/included:13.13.2
|
||||
build:
|
||||
context: ../../dockerfiles/cypress
|
||||
args:
|
||||
- USER_UID
|
||||
- USER_GID
|
||||
stop_grace_period: 0s
|
||||
entrypoint: npm
|
||||
command: run cypress:run
|
||||
@@ -76,7 +80,6 @@ services:
|
||||
- $PWD:$PWD
|
||||
- $MONOREPO/libraries:$MONOREPO/libraries:ro
|
||||
- $MONOREPO/node_modules:$MONOREPO/node_modules:ro
|
||||
user: "${DOCKER_USER:-1000:1000}"
|
||||
environment:
|
||||
MONOREPO:
|
||||
CYPRESS_SHARD:
|
||||
|
||||
@@ -181,6 +181,17 @@ TEST_FRONTEND_CT_VARIANTS = \
|
||||
test_frontend_ct_editor_other \
|
||||
test_frontend_ct_editor_visual \
|
||||
|
||||
TEST_FRONTEND_CT_TARGETS = \
|
||||
$(TEST_FRONTEND_CT_VARIANTS) \
|
||||
build_test_frontend_ct \
|
||||
test_frontend_ct_ui \
|
||||
|
||||
$(TEST_FRONTEND_CT_TARGETS): export USER_UID=$(shell id -u)
|
||||
$(TEST_FRONTEND_CT_TARGETS): export USER_GID=$(shell id -g)
|
||||
|
||||
test_frontend_ct_ui:
|
||||
docker compose -f docker-compose.cypress.yml run --rm cypress run cypress:open-ct -- --browser chrome
|
||||
|
||||
#
|
||||
# Writefull tests
|
||||
#
|
||||
@@ -192,6 +203,7 @@ test_writefull:
|
||||
|
||||
# Note: The below cypress targets are for CI only
|
||||
build_test_frontend_ct:
|
||||
$(DOCKER_COMPOSE) build test_frontend_ct
|
||||
docker run --rm --volume /dev/shm:/dev/shm --user root $(IMAGE_CI) bash -ec 'for path in /overleaf/services/web/cypress/results /overleaf/services/web/node_modules/.cache; do mkdir -p $$path; chown -R node:node $$path; done && tar -cC / overleaf | tar -xC /dev/shm'
|
||||
|
||||
test_frontend_ct_core_other: export CYPRESS_DOWNLOADS=./cypress/downloads/core
|
||||
|
||||
@@ -87,11 +87,14 @@ services:
|
||||
JUNIT_ROOT_SUITE_NAME:
|
||||
|
||||
test_frontend_ct:
|
||||
image: cypress/included:13.13.2
|
||||
build:
|
||||
context: ../../dockerfiles/cypress
|
||||
args:
|
||||
- USER_UID
|
||||
- USER_GID
|
||||
logging:
|
||||
driver: local
|
||||
working_dir: /overleaf/services/web
|
||||
user: "${DOCKER_USER:-1000:1000}"
|
||||
environment:
|
||||
CI:
|
||||
CYPRESS_DOWNLOADS:
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
services:
|
||||
cypress:
|
||||
image: cypress/included:13.13.2
|
||||
build:
|
||||
context: ../../dockerfiles/cypress
|
||||
args:
|
||||
- USER_UID
|
||||
- USER_GID
|
||||
volumes:
|
||||
- ../../:/overleaf
|
||||
- /tmp/.X11-unix:/tmp/.X11-unix
|
||||
@@ -8,7 +12,6 @@ services:
|
||||
working_dir: /overleaf/services/web
|
||||
entrypoint: npm
|
||||
command: run cypress:open-ct
|
||||
user: "${DOCKER_USER:-1000:1000}"
|
||||
environment:
|
||||
VERBOSE_LOGGING:
|
||||
DISPLAY: ${DISPLAY:-:0}
|
||||
|
||||
@@ -89,11 +89,14 @@ services:
|
||||
user: node
|
||||
|
||||
test_frontend_ct:
|
||||
image: cypress/included:13.13.2
|
||||
build:
|
||||
context: ../../dockerfiles/cypress
|
||||
args:
|
||||
- USER_UID
|
||||
- USER_GID
|
||||
volumes:
|
||||
- ../../:/overleaf
|
||||
working_dir: /overleaf/services/web
|
||||
user: "${DOCKER_USER:-1000:1000}"
|
||||
environment:
|
||||
VERBOSE_LOGGING:
|
||||
CI:
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
"convert-themes": "node frontend/js/features/source-editor/themes/scripts/convert.js",
|
||||
"cypress:open-ct": "OVERLEAF_CONFIG=$PWD/config/settings.webpack.js cypress open --component",
|
||||
"cypress:run-ct": "OVERLEAF_CONFIG=$PWD/config/settings.webpack.js cypress run --component --browser chrome",
|
||||
"cypress:docker:open-ct": "DOCKER_USER=\"$(id -u):$(id -g)\" docker compose -f docker-compose.cypress.yml run --rm cypress run cypress:open-ct",
|
||||
"cypress:docker:run-ct": "DOCKER_USER=\"$(id -u):$(id -g)\" docker compose -f docker-compose.cypress.yml run --rm cypress run cypress:run-ct --browser chrome",
|
||||
"cypress:docker:open-ct": "USER_UID=$(id -u) USER_GID=$(id -g) docker compose -f docker-compose.cypress.yml run --rm cypress run cypress:open-ct",
|
||||
"cypress:docker:run-ct": "USER_UID=$(id -u) USER_GID=$(id -g) docker compose -f docker-compose.cypress.yml run --rm cypress run cypress:run-ct --browser chrome",
|
||||
"lezer-latex:generate": "node scripts/lezer-latex/generate.mjs",
|
||||
"lezer-latex:run": "node scripts/lezer-latex/run.mjs",
|
||||
"lezer-latex:benchmark": "node scripts/lezer-latex/benchmark.mjs",
|
||||
|
||||
Reference in New Issue
Block a user