mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 09:09:36 +02:00
[server-ce] tests: add jenkins integration (#27600)
* [server-ce] remove unused CE_CUSTOM_3 shard * [server-ce] tests: add jenkins integration * [server-ce] tests: log failed host-admin requests in CI * [server-ce] tests: attempt at reducing flakiness in Cloud Build GitOrigin-RevId: 8d999efe1ccf041dca148bc8710dddb8561614ab
This commit is contained in:
@@ -41,6 +41,12 @@ build-community:
|
|||||||
--tag $(OVERLEAF_BRANCH) \
|
--tag $(OVERLEAF_BRANCH) \
|
||||||
$(MONOREPO_ROOT)
|
$(MONOREPO_ROOT)
|
||||||
|
|
||||||
|
push:
|
||||||
|
docker push $(OVERLEAF_BASE_TAG)
|
||||||
|
docker push $(OVERLEAF_BASE_BRANCH)
|
||||||
|
docker push $(OVERLEAF_TAG)
|
||||||
|
docker push $(OVERLEAF_BRANCH)
|
||||||
|
|
||||||
SHELLCHECK_OPTS = \
|
SHELLCHECK_OPTS = \
|
||||||
--shell=bash \
|
--shell=bash \
|
||||||
--external-sources \
|
--external-sources \
|
||||||
|
|||||||
154
server-ce/test/.jenkinsIncludeFile
Normal file
154
server-ce/test/.jenkinsIncludeFile
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
copybara/**
|
||||||
|
|
||||||
|
libraries/**
|
||||||
|
|
||||||
|
patches/**
|
||||||
|
|
||||||
|
server-ce/**
|
||||||
|
server-pro/**
|
||||||
|
|
||||||
|
services/clsi/seccomp/**
|
||||||
|
services/history-v1/api/**
|
||||||
|
services/history-v1/storage/**
|
||||||
|
|
||||||
|
# echo chat clsi contacts docstore document-updater filestore history-v1 notifications project-history real-time references templates | xargs -n1 echo | xargs -I% echo 'services/%/*' 'services/%/app/**' 'services/%/config/*' 'services/%/scripts/**' | xargs -n1 echo | sort
|
||||||
|
services/chat/*
|
||||||
|
services/chat/app/**
|
||||||
|
services/chat/config/*
|
||||||
|
services/chat/scripts/**
|
||||||
|
services/clsi/*
|
||||||
|
services/clsi/app/**
|
||||||
|
services/clsi/config/*
|
||||||
|
services/clsi/scripts/**
|
||||||
|
services/contacts/*
|
||||||
|
services/contacts/app/**
|
||||||
|
services/contacts/config/*
|
||||||
|
services/contacts/scripts/**
|
||||||
|
services/docstore/*
|
||||||
|
services/docstore/app/**
|
||||||
|
services/docstore/config/*
|
||||||
|
services/docstore/scripts/**
|
||||||
|
services/document-updater/*
|
||||||
|
services/document-updater/app/**
|
||||||
|
services/document-updater/config/*
|
||||||
|
services/document-updater/scripts/**
|
||||||
|
services/filestore/*
|
||||||
|
services/filestore/app/**
|
||||||
|
services/filestore/config/*
|
||||||
|
services/filestore/scripts/**
|
||||||
|
services/history-v1/*
|
||||||
|
services/history-v1/app/**
|
||||||
|
services/history-v1/config/*
|
||||||
|
services/history-v1/scripts/**
|
||||||
|
services/notifications/*
|
||||||
|
services/notifications/app/**
|
||||||
|
services/notifications/config/*
|
||||||
|
services/notifications/scripts/**
|
||||||
|
services/project-history/*
|
||||||
|
services/project-history/app/**
|
||||||
|
services/project-history/config/*
|
||||||
|
services/project-history/scripts/**
|
||||||
|
services/real-time/*
|
||||||
|
services/real-time/app/**
|
||||||
|
services/real-time/config/*
|
||||||
|
services/real-time/scripts/**
|
||||||
|
services/references/*
|
||||||
|
services/references/app/**
|
||||||
|
services/references/config/*
|
||||||
|
services/references/scripts/**
|
||||||
|
services/templates/*
|
||||||
|
services/templates/app/**
|
||||||
|
services/templates/config/*
|
||||||
|
services/templates/scripts/**
|
||||||
|
|
||||||
|
|
||||||
|
services/web/*
|
||||||
|
services/web/app/**
|
||||||
|
services/web/config/settings.defaults.js
|
||||||
|
services/web/config/settings.overrides.server-pro.js
|
||||||
|
services/web/frontend/**
|
||||||
|
services/web/locales/**
|
||||||
|
services/web/migrations/**
|
||||||
|
|
||||||
|
# echo admin-panel admin-roles full-project-search git-bridge lauchpad ldap learn oauth2-server server-ce-scripts server-pro-saml symbol-palette templates track-changes user-activate | xargs -n1 echo | xargs -I% echo 'services/web/modules/%/*' 'services/web/modules/%/app/**' 'services/web/modules/%/frontend/**' 'services/web/modules/%/scripts/**' 'services/web/modules/%/types/**' | xargs -n1 echo | sort
|
||||||
|
services/web/modules/admin-panel/*
|
||||||
|
services/web/modules/admin-panel/app/**
|
||||||
|
services/web/modules/admin-panel/frontend/**
|
||||||
|
services/web/modules/admin-panel/scripts/**
|
||||||
|
services/web/modules/admin-panel/types/**
|
||||||
|
services/web/modules/admin-roles/*
|
||||||
|
services/web/modules/admin-roles/app/**
|
||||||
|
services/web/modules/admin-roles/frontend/**
|
||||||
|
services/web/modules/admin-roles/scripts/**
|
||||||
|
services/web/modules/admin-roles/types/**
|
||||||
|
services/web/modules/full-project-search/*
|
||||||
|
services/web/modules/full-project-search/app/**
|
||||||
|
services/web/modules/full-project-search/frontend/**
|
||||||
|
services/web/modules/full-project-search/scripts/**
|
||||||
|
services/web/modules/full-project-search/types/**
|
||||||
|
services/web/modules/git-bridge/*
|
||||||
|
services/web/modules/git-bridge/app/**
|
||||||
|
services/web/modules/git-bridge/frontend/**
|
||||||
|
services/web/modules/git-bridge/scripts/**
|
||||||
|
services/web/modules/git-bridge/types/**
|
||||||
|
services/web/modules/lauchpad/*
|
||||||
|
services/web/modules/lauchpad/app/**
|
||||||
|
services/web/modules/lauchpad/frontend/**
|
||||||
|
services/web/modules/lauchpad/scripts/**
|
||||||
|
services/web/modules/lauchpad/types/**
|
||||||
|
services/web/modules/ldap/*
|
||||||
|
services/web/modules/ldap/app/**
|
||||||
|
services/web/modules/ldap/frontend/**
|
||||||
|
services/web/modules/ldap/scripts/**
|
||||||
|
services/web/modules/ldap/types/**
|
||||||
|
services/web/modules/learn/*
|
||||||
|
services/web/modules/learn/app/**
|
||||||
|
services/web/modules/learn/frontend/**
|
||||||
|
services/web/modules/learn/scripts/**
|
||||||
|
services/web/modules/learn/types/**
|
||||||
|
services/web/modules/oauth2-server/*
|
||||||
|
services/web/modules/oauth2-server/app/**
|
||||||
|
services/web/modules/oauth2-server/frontend/**
|
||||||
|
services/web/modules/oauth2-server/scripts/**
|
||||||
|
services/web/modules/oauth2-server/types/**
|
||||||
|
services/web/modules/server-ce-scripts/*
|
||||||
|
services/web/modules/server-ce-scripts/app/**
|
||||||
|
services/web/modules/server-ce-scripts/frontend/**
|
||||||
|
services/web/modules/server-ce-scripts/scripts/**
|
||||||
|
services/web/modules/server-ce-scripts/types/**
|
||||||
|
services/web/modules/server-pro-saml/*
|
||||||
|
services/web/modules/server-pro-saml/app/**
|
||||||
|
services/web/modules/server-pro-saml/frontend/**
|
||||||
|
services/web/modules/server-pro-saml/scripts/**
|
||||||
|
services/web/modules/server-pro-saml/types/**
|
||||||
|
services/web/modules/symbol-palette/*
|
||||||
|
services/web/modules/symbol-palette/app/**
|
||||||
|
services/web/modules/symbol-palette/frontend/**
|
||||||
|
services/web/modules/symbol-palette/scripts/**
|
||||||
|
services/web/modules/symbol-palette/types/**
|
||||||
|
services/web/modules/templates/*
|
||||||
|
services/web/modules/templates/app/**
|
||||||
|
services/web/modules/templates/frontend/**
|
||||||
|
services/web/modules/templates/scripts/**
|
||||||
|
services/web/modules/templates/types/**
|
||||||
|
services/web/modules/track-changes/*
|
||||||
|
services/web/modules/track-changes/app/**
|
||||||
|
services/web/modules/track-changes/frontend/**
|
||||||
|
services/web/modules/track-changes/scripts/**
|
||||||
|
services/web/modules/track-changes/types/**
|
||||||
|
services/web/modules/user-activate/*
|
||||||
|
services/web/modules/user-activate/app/**
|
||||||
|
services/web/modules/user-activate/frontend/**
|
||||||
|
services/web/modules/user-activate/scripts/**
|
||||||
|
services/web/modules/user-activate/types/**
|
||||||
|
|
||||||
|
services/web/public/**
|
||||||
|
services/web/types/**
|
||||||
|
services/web/webpack-plugins/**
|
||||||
|
|
||||||
|
.dockerignore
|
||||||
|
.eslint*
|
||||||
|
.pretter*
|
||||||
|
package.json
|
||||||
|
package-lock.json
|
||||||
|
tsconfig.backend.json
|
||||||
222
server-ce/test/Jenkinsfile
vendored
Normal file
222
server-ce/test/Jenkinsfile
vendored
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
def job_copybara_done = false
|
||||||
|
def job_npm_install_done = false
|
||||||
|
def job_prefetch_custom_done = false
|
||||||
|
def job_prefetch_default_done = false
|
||||||
|
def job_server_ce_build_done = false
|
||||||
|
def job_server_pro_build_done = false
|
||||||
|
|
||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
node {
|
||||||
|
label 'jenkins-agent-web'
|
||||||
|
customWorkspace '/workspace'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
options {
|
||||||
|
timestamps()
|
||||||
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
BRANCH_NAME = "${GIT_BRANCH.replace('origin/', '')}"
|
||||||
|
COMMIT_SHA = "${GIT_COMMIT}"
|
||||||
|
SHORT_SHA = "${GIT_COMMIT.take(7)}"
|
||||||
|
|
||||||
|
OVERLEAF_BASE_BRANCH = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/overleaf-base-internal:${BRANCH_NAME}"
|
||||||
|
OVERLEAF_BASE_LATEST = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/overleaf-base-internal:main"
|
||||||
|
OVERLEAF_BASE_TAG = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/overleaf-base-internal:${BRANCH_NAME}-${SHORT_SHA}_${BUILD_ID}"
|
||||||
|
OVERLEAF_BRANCH = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/overleaf-internal:${BRANCH_NAME}"
|
||||||
|
OVERLEAF_LATEST = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/overleaf-internal:main"
|
||||||
|
OVERLEAF_TAG = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/overleaf-internal:${BRANCH_NAME}-${SHORT_SHA}_${BUILD_ID}"
|
||||||
|
IMAGE_TAG_CE = "${OVERLEAF_TAG}"
|
||||||
|
IMAGE_TAG_PRO = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/pro:main"
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('Parallel') {
|
||||||
|
parallel {
|
||||||
|
stage('Install deps') {
|
||||||
|
steps {
|
||||||
|
sh 'make install'
|
||||||
|
sh 'make -C server-ce/test npm_install_in_docker'
|
||||||
|
script { job_npm_install_done = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('shellcheck') {
|
||||||
|
steps {
|
||||||
|
dir('server-ce') {
|
||||||
|
sh 'make shellcheck'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Format') {
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make format_in_docker'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Copybara') {
|
||||||
|
steps {
|
||||||
|
sh 'copybara/bin/sync'
|
||||||
|
script { job_copybara_done = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build CE image') {
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_copybara_done } }
|
||||||
|
dir('copybara/public/repo/server-ce') {
|
||||||
|
sh 'make build-base'
|
||||||
|
sh 'make build-community'
|
||||||
|
}
|
||||||
|
script { job_server_ce_build_done = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Push CE to internal') {
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_server_ce_build_done } }
|
||||||
|
dir('copybara/public/repo/server-ce') {
|
||||||
|
sh 'make push'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build Pro image') {
|
||||||
|
environment {
|
||||||
|
OVERLEAF_CE_TAG = "${OVERLEAF_TAG}"
|
||||||
|
OVERLEAF_PRO_TAG= "${IMAGE_TAG_PRO}"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_server_ce_build_done } }
|
||||||
|
dir('server-pro') {
|
||||||
|
sh 'make build-ci'
|
||||||
|
}
|
||||||
|
script { job_server_pro_build_done = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Prefetch default') {
|
||||||
|
steps {
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make prefetch_default -j4'
|
||||||
|
}
|
||||||
|
script { job_prefetch_default_done = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Prefetch custom') {
|
||||||
|
steps {
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make prefetch_custom -j4'
|
||||||
|
}
|
||||||
|
script { job_prefetch_custom_done = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('CE default') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "CE_DEFAULT"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-ce-default"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_ce_build_done && job_prefetch_default_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('CE custom 1') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "CE_CUSTOM_1"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-ce-custom-1"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_ce_build_done && job_prefetch_default_done && job_prefetch_custom_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('CE custom 2') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "CE_CUSTOM_2"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-ce-custom-2"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_ce_build_done && job_prefetch_default_done && job_prefetch_custom_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('PRO default 1') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "PRO_DEFAULT_1"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-pro-default-1"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_pro_build_done && job_prefetch_default_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('PRO default 2') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "PRO_DEFAULT_2"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-pro-default-2"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_pro_build_done && job_prefetch_default_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('PRO custom 1') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "PRO_CUSTOM_1"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-pro-custom-1"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_pro_build_done && job_prefetch_default_done && job_prefetch_custom_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('PRO custom 2') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "PRO_CUSTOM_2"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-pro-custom-2"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_pro_build_done && job_prefetch_default_done && job_prefetch_custom_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('PRO custom 3') {
|
||||||
|
environment {
|
||||||
|
CYPRESS_SHARD = "PRO_CUSTOM_3"
|
||||||
|
COMPOSE_PROJECT_NAME = "test-pro-custom-3"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script { waitUntil { return job_npm_install_done && job_server_pro_build_done && job_prefetch_default_done && job_prefetch_custom_done } }
|
||||||
|
dir('server-ce/test') {
|
||||||
|
sh 'make test-e2e'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// vim: set ft=groovy :
|
||||||
@@ -22,11 +22,13 @@ test-e2e-native:
|
|||||||
|
|
||||||
test-e2e:
|
test-e2e:
|
||||||
docker compose build host-admin
|
docker compose build host-admin
|
||||||
docker compose up -d host-admin
|
docker compose up --detach --wait host-admin
|
||||||
docker compose up --no-log-prefix --exit-code-from=e2e e2e
|
docker compose up --detach --wait mongo
|
||||||
|
docker compose up --no-log-prefix --exit-code-from=e2e e2e host-admin
|
||||||
|
|
||||||
test-e2e-open:
|
test-e2e-open:
|
||||||
docker compose up -d host-admin
|
docker compose up --detach --wait host-admin
|
||||||
|
docker compose up --detach --wait mongo
|
||||||
docker compose up --no-log-prefix --exit-code-from=e2e-open e2e-open host-admin
|
docker compose up --no-log-prefix --exit-code-from=e2e-open e2e-open host-admin
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@@ -58,12 +60,12 @@ prefetch_custom_texlive_2022:
|
|||||||
|
|
||||||
prefetch_custom: prefetch_old_4_2
|
prefetch_custom: prefetch_old_4_2
|
||||||
prefetch_old_4_2:
|
prefetch_old_4_2:
|
||||||
docker pull $(IMAGE_TAG_PRO:latest=4.2)
|
docker pull $(IMAGE_TAG_PRO:main=4.2)
|
||||||
|
|
||||||
prefetch_custom: prefetch_old_5_0
|
prefetch_custom: prefetch_old_5_0
|
||||||
prefetch_old_5_0:
|
prefetch_old_5_0:
|
||||||
docker pull $(IMAGE_TAG_PRO:latest=5.0.1-RC1)
|
docker pull $(IMAGE_TAG_PRO:main=5.0.1-RC1)
|
||||||
docker pull $(IMAGE_TAG_PRO:latest=5.0)
|
docker pull $(IMAGE_TAG_PRO:main=5.0)
|
||||||
|
|
||||||
# Google Cloud Build runs on a very ancient Docker version that does not support the subdir flag.
|
# Google Cloud Build runs on a very ancient Docker version that does not support the subdir flag.
|
||||||
# Use services -> mailtrap -> build -> context = https://github.com/dbck/docker-mailtrap.git#v1.5.0:build in docker-compose.yml eventually.
|
# Use services -> mailtrap -> build -> context = https://github.com/dbck/docker-mailtrap.git#v1.5.0:build in docker-compose.yml eventually.
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ services:
|
|||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
stop_grace_period: 0s
|
stop_grace_period: 0s
|
||||||
environment:
|
environment:
|
||||||
|
CI:
|
||||||
PWD:
|
PWD:
|
||||||
CYPRESS_SHARD:
|
CYPRESS_SHARD:
|
||||||
COMPOSE_PROJECT_NAME:
|
COMPOSE_PROJECT_NAME:
|
||||||
@@ -110,9 +111,6 @@ services:
|
|||||||
ALL_TEX_LIVE_DOCKER_IMAGES:
|
ALL_TEX_LIVE_DOCKER_IMAGES:
|
||||||
IMAGE_TAG_CE: ${IMAGE_TAG_CE:-sharelatex/sharelatex:latest}
|
IMAGE_TAG_CE: ${IMAGE_TAG_CE:-sharelatex/sharelatex:latest}
|
||||||
IMAGE_TAG_PRO: ${IMAGE_TAG_PRO:-quay.io/sharelatex/sharelatex-pro:latest}
|
IMAGE_TAG_PRO: ${IMAGE_TAG_PRO:-quay.io/sharelatex/sharelatex-pro:latest}
|
||||||
depends_on:
|
|
||||||
mongo:
|
|
||||||
condition: service_healthy
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: curl --fail http://localhost/status
|
test: curl --fail http://localhost/status
|
||||||
interval: 3s
|
interval: 3s
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ export function isExcludedBySharding(
|
|||||||
| 'CE_DEFAULT'
|
| 'CE_DEFAULT'
|
||||||
| 'CE_CUSTOM_1'
|
| 'CE_CUSTOM_1'
|
||||||
| 'CE_CUSTOM_2'
|
| 'CE_CUSTOM_2'
|
||||||
| 'CE_CUSTOM_3'
|
|
||||||
| 'PRO_DEFAULT_1'
|
| 'PRO_DEFAULT_1'
|
||||||
| 'PRO_DEFAULT_2'
|
| 'PRO_DEFAULT_2'
|
||||||
| 'PRO_CUSTOM_1'
|
| 'PRO_CUSTOM_1'
|
||||||
|
|||||||
@@ -28,6 +28,11 @@ const IMAGES = {
|
|||||||
CE: process.env.IMAGE_TAG_CE.replace(/:.+/, ''),
|
CE: process.env.IMAGE_TAG_CE.replace(/:.+/, ''),
|
||||||
PRO: process.env.IMAGE_TAG_PRO.replace(/:.+/, ''),
|
PRO: process.env.IMAGE_TAG_PRO.replace(/:.+/, ''),
|
||||||
}
|
}
|
||||||
|
const LATEST = {
|
||||||
|
CE: process.env.IMAGE_TAG_CE.replace(/.+:/, '') || 'latest',
|
||||||
|
PRO: process.env.IMAGE_TAG_PRO.replace(/.+:/, '') || 'latest',
|
||||||
|
GIT_BRIDGE: 'latest', // TODO, build in CI?
|
||||||
|
}
|
||||||
|
|
||||||
function defaultDockerComposeOverride() {
|
function defaultDockerComposeOverride() {
|
||||||
return {
|
return {
|
||||||
@@ -80,10 +85,14 @@ app.get('/status', (req, res) => {
|
|||||||
app.use(bodyParser.json())
|
app.use(bodyParser.json())
|
||||||
app.use((req, res, next) => {
|
app.use((req, res, next) => {
|
||||||
// Basic access logs
|
// Basic access logs
|
||||||
console.log(req.method, req.url, req.body)
|
if (process.env.CI !== 'true') {
|
||||||
|
console.log(req.method, req.url, req.body)
|
||||||
|
}
|
||||||
const json = res.json
|
const json = res.json
|
||||||
res.json = body => {
|
res.json = body => {
|
||||||
console.log(req.method, req.url, req.body, '->', body)
|
if (process.env.CI !== 'true' || body.error) {
|
||||||
|
console.log(req.method, req.url, req.body, '->', body)
|
||||||
|
}
|
||||||
json.call(res, body)
|
json.call(res, body)
|
||||||
}
|
}
|
||||||
next()
|
next()
|
||||||
@@ -230,8 +239,9 @@ function setVarsDockerCompose({
|
|||||||
}) {
|
}) {
|
||||||
const cfg = readDockerComposeOverride()
|
const cfg = readDockerComposeOverride()
|
||||||
|
|
||||||
cfg.services.sharelatex.image = `${pro ? IMAGES.PRO : IMAGES.CE}:${version}`
|
cfg.services.sharelatex.image = `${pro ? IMAGES.PRO : IMAGES.CE}:${version === 'latest' ? (pro ? LATEST.PRO : LATEST.CE) : version}`
|
||||||
cfg.services['git-bridge'].image = `quay.io/sharelatex/git-bridge:${version}`
|
cfg.services['git-bridge'].image =
|
||||||
|
`quay.io/sharelatex/git-bridge:${version === 'latest' ? LATEST.GIT_BRIDGE : version}`
|
||||||
|
|
||||||
cfg.services.sharelatex.environment = vars
|
cfg.services.sharelatex.environment = vars
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user