Merge pull request #30018 from overleaf/msm-fix-esm-import

[web] Fix ESM import

GitOrigin-RevId: 887f4927248241cb3d237e0bdad36b05928657ef
This commit is contained in:
Miguel Serrano
2025-12-02 10:07:50 +01:00
committed by Copybot
parent fa1aa0116a
commit a3ec5b2797
58 changed files with 0 additions and 4672 deletions

View File

@@ -1,34 +0,0 @@
copybara/**
libraries/**
patches/**
server-ce/**
server-pro/**
# echo chat clsi contacts docstore document-updater filestore history-v1 notifications project-history real-time references templates web | xargs -n1 echo | xargs -I% echo 'services/%/**'
# BEGIN GENERATED
services/chat/**
services/clsi/**
services/contacts/**
services/docstore/**
services/document-updater/**
services/filestore/**
services/history-v1/**
services/notifications/**
services/project-history/**
services/real-time/**
services/references/**
services/templates/**
services/web/**
# END GENERATED
tools/migrations/**
.dockerignore
.eslint*
.pretter*
package.json
package-lock.json
tsconfig.backend.json

View File

@@ -1,385 +0,0 @@
// Initialize variables to signal that a given stage finished.
// We use them to build a graph of interconnected steps/dependencies.
// - Incoming edges use "waitUntil" and reference the given variables of dependencies.
// - Outgoing edges set the given variable to true.
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 {
// Select a VM with the given tabel.
label 'jenkins-agent-web'
// Use the monorepo checkout in /workspace.
customWorkspace '/workspace'
}
}
options {
// Print timestamp next to each log line.
timestamps()
// Abort build after hitting first failure.
parallelsAlwaysFailFast()
timeout(time: 20, unit: 'MINUTES')
}
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:${BRANCH_NAME}-${SHORT_SHA}_${BUILD_ID}"
OVERLEAF_PRO_TAG_BRANCH = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/pro-internal:${BRANCH_NAME}"
OVERLEAF_PRO_TAG_LATEST = "us-east1-docker.pkg.dev/overleaf-ops/ol-docker/pro-internal:main"
}
stages {
stage('Create reports folder') {
steps {
sh 'mkdir server-ce/test/reports'
}
}
stage('Parallel') {
parallel {
stage('Install deps') {
steps {
retry(count: 3) {
sh 'make monorepo_setup'
}
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
}
}
sh 'bin/run -w /overleaf/server-ce/test monorepo npm run format'
}
}
stage('Lint') {
steps {
script {
waitUntil {
return job_npm_install_done
}
}
sh 'bin/run -w /overleaf/server-ce/test monorepo npm run lint -- --format json --output-file reports/eslint.json'
}
post {
always {
sh """
sed -i 's_"filePath":"/overleaf_"filePath":"/workspace_g' server-ce/test/reports/eslint.json
"""
recordIssues checksAnnotationScope: 'ALL', enabledForFailure: true, failOnError: true, id: 'server-pro-e2e-tests-eslint', name: 'Server-Pro-E2E-Tests eslint', qualityGates: [[integerThreshold: 1, threshold: 1.0, type: 'TOTAL']], sourceCodeRetention: 'LAST_BUILD', tools: [esLint(pattern: 'server-ce/test/reports/eslint.json')]
}
}
}
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 refresh-cache -j2'
retry(count: 3) {
sh 'make build-base'
}
retry(count: 3) {
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') {
retry(count: 3) {
sh 'make build-ci'
}
}
script {
job_server_pro_build_done = true
}
}
}
stage('Push Pro to internal') {
steps {
script {
waitUntil {
return job_server_pro_build_done
}
}
dir('server-pro') {
sh 'make push_branch'
}
}
}
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') {
retry(count: 3) {
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') {
retry(count: 3) {
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') {
retry(count: 3) {
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') {
retry(count: 3) {
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') {
retry(count: 3) {
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') {
retry(count: 3) {
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') {
retry(count: 3) {
sh 'make test-e2e'
}
}
}
}
stage('PRO custom 4') {
environment {
CYPRESS_SHARD = "PRO_CUSTOM_4"
COMPOSE_PROJECT_NAME = "test-pro-custom-4"
}
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') {
retry(count: 3) {
sh 'make test-e2e'
}
}
}
}
stage('PRO custom 5') {
environment {
CYPRESS_SHARD = "PRO_CUSTOM_5"
COMPOSE_PROJECT_NAME = "test-pro-custom-5"
}
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') {
retry(count: 3) {
sh 'make test-e2e'
}
}
}
}
}
}
}
post {
// Collect junit test results for both success and failure case.
always {
junit checksName: 'Server-Pro-E2E-Tests results', testResults: 'server-ce/test/reports/junit-*.xml'
}
failure {
script {
if (env.BRANCH_NAME == 'main') {
node('built-in') {
sh '/usr/local/bin/open-gh-failure-issue --project="B2B"'
}
}
}
}
// Ensure tear down of test containers, remove CE docker images, then run general Jenkins VM cleanup.
cleanup {
dir('server-ce/test') {
sh 'make clean -j10'
}
dir('server-ce') {
sh 'make clean'
}
dir('server-pro') {
sh 'make clean'
}
sh 'make clean_jenkins -j10'
}
}
}
// vim: set ft=groovy :