Просмотр исходного кода

Merge pull request #20332 from overleaf/jpa-small-runner

[misc] CI improvements

GitOrigin-RevId: 819d4d357fcb130f133337668644eedcf5f4a688
Jakob Ackermann 1 год назад
Родитель
Сommit
e3feafb7b0

+ 19 - 3
services/chat/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -103,9 +113,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -121,6 +136,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/chat/buildscript.txt

@@ -1,6 +1,6 @@
 chat
 chat
 --dependencies=mongo
 --dependencies=mongo
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=False
 --esmock-loader=False

+ 17 - 20
services/clsi/Makefile

@@ -35,24 +35,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -96,30 +107,15 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker pull gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		|| docker pull gcr.io/overleaf-ops/$(PROJECT_NAME):main-deps \
-		|| echo 'nothing cached for gcr.io/overleaf-ops'
-	docker pull us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		|| docker pull us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main-deps \
-		|| echo 'nothing cached for us-east1-docker.pkg.dev/overleaf-ops/ol-docker'
 	docker build \
 	docker build \
-	 	--pull \
+		--pull \
 		--build-arg BUILDKIT_INLINE_CACHE=1 \
 		--build-arg BUILDKIT_INLINE_CACHE=1 \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):main-deps \
-		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main-deps \
-		--target base \
-		--file Dockerfile \
-		../..
-
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
+		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):main \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -135,6 +131,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 0
services/clsi/buildscript.txt

@@ -8,3 +8,4 @@ clsi
 --node-version=18.20.2
 --node-version=18.20.2
 --public-repo=True
 --public-repo=True
 --script-version=4.5.0
 --script-version=4.5.0
+--use-large-ci-runner=True

+ 19 - 3
services/contacts/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -103,9 +113,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -121,6 +136,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/contacts/buildscript.txt

@@ -1,6 +1,6 @@
 contacts
 contacts
 --dependencies=mongo
 --dependencies=mongo
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=True
 --esmock-loader=True

+ 19 - 3
services/docstore/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -103,9 +113,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -121,6 +136,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/docstore/buildscript.txt

@@ -1,6 +1,6 @@
 docstore
 docstore
 --dependencies=mongo,gcs
 --dependencies=mongo,gcs
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=False
 --esmock-loader=False

+ 19 - 3
services/document-updater/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -103,9 +113,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -121,6 +136,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/document-updater/buildscript.txt

@@ -1,6 +1,6 @@
 document-updater
 document-updater
 --dependencies=mongo,redis
 --dependencies=mongo,redis
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=False
 --esmock-loader=False

+ 17 - 22
services/filestore/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -96,30 +106,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker pull gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		|| docker pull gcr.io/overleaf-ops/$(PROJECT_NAME):main-deps \
-		|| echo 'nothing cached for gcr.io/overleaf-ops'
-	docker pull us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		|| docker pull us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main-deps \
-		|| echo 'nothing cached for us-east1-docker.pkg.dev/overleaf-ops/ol-docker'
 	docker build \
 	docker build \
-	 	--pull \
+		--pull \
 		--build-arg BUILDKIT_INLINE_CACHE=1 \
 		--build-arg BUILDKIT_INLINE_CACHE=1 \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):main-deps \
-		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main-deps \
-		--target base \
-		--file Dockerfile \
-		../..
-
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -135,6 +129,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 2 - 1
services/filestore/buildscript.txt

@@ -1,7 +1,7 @@
 filestore
 filestore
 --data-dirs=uploads,user_files,template_files
 --data-dirs=uploads,user_files,template_files
 --dependencies=s3,gcs
 --dependencies=s3,gcs
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=ENABLE_CONVERSIONS="true",USE_PROM_METRICS="true",AWS_S3_USER_FILES_BUCKET_NAME=fake_user_files,AWS_S3_TEMPLATE_FILES_BUCKET_NAME=fake_template_files,GCS_USER_FILES_BUCKET_NAME=fake_userfiles,GCS_TEMPLATE_FILES_BUCKET_NAME=fake_templatefiles
 --env-add=ENABLE_CONVERSIONS="true",USE_PROM_METRICS="true",AWS_S3_USER_FILES_BUCKET_NAME=fake_user_files,AWS_S3_TEMPLATE_FILES_BUCKET_NAME=fake_template_files,GCS_USER_FILES_BUCKET_NAME=fake_userfiles,GCS_TEMPLATE_FILES_BUCKET_NAME=fake_templatefiles
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=False
 --esmock-loader=False
@@ -9,3 +9,4 @@ filestore
 --public-repo=True
 --public-repo=True
 --script-version=4.5.0
 --script-version=4.5.0
 --test-acceptance-shards=SHARD_01_,SHARD_02_,SHARD_03_
 --test-acceptance-shards=SHARD_01_,SHARD_02_,SHARD_03_
+--use-large-ci-runner=True

+ 19 - 3
services/history-v1/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -103,9 +113,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -121,6 +136,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/history-v1/buildscript.txt

@@ -1,6 +1,6 @@
 history-v1
 history-v1
 --dependencies=postgres,gcs,mongo
 --dependencies=postgres,gcs,mongo
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=False
 --esmock-loader=False

+ 19 - 3
services/notifications/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -103,9 +113,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -121,6 +136,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/notifications/buildscript.txt

@@ -1,6 +1,6 @@
 notifications
 notifications
 --dependencies=mongo
 --dependencies=mongo
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=False
 --esmock-loader=False

+ 19 - 3
services/project-history/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json --volume $(MONOREPO)/services/document-updater/app/js/types.ts:/overleaf/services/document-updater/app/js/types.ts ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -103,9 +113,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -121,6 +136,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/project-history/buildscript.txt

@@ -1,6 +1,6 @@
 project-history
 project-history
 --dependencies=mongo,redis
 --dependencies=mongo,redis
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=True
 --esmock-loader=True

+ 19 - 3
services/real-time/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -96,9 +106,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+	docker build \
+		--pull \
+		--build-arg BUILDKIT_INLINE_CACHE=1 \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -114,6 +129,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/real-time/buildscript.txt

@@ -1,6 +1,6 @@
 real-time
 real-time
 --dependencies=redis
 --dependencies=redis
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=False
 --esmock-loader=False

+ 17 - 22
services/spelling/Makefile

@@ -24,7 +24,6 @@ DOCKER_COMPOSE_TEST_UNIT = \
 
 
 clean:
 clean:
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-docker rmi us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
@@ -35,24 +34,35 @@ MONOREPO=$(shell cd ../../ && pwd)
 # Eslint and prettier (plus some configs) are on the root.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:18.20.2 npm run --silent
 
 
+RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
+
 # Same but from the top of the monorepo
 # Same but from the top of the monorepo
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:18.20.2 npm run --silent
 
 
 format:
 format:
 	$(RUN_LINTING) format
 	$(RUN_LINTING) format
 
 
+format_ci:
+	$(RUN_LINTING_CI) format
+
 format_fix:
 format_fix:
 	$(RUN_LINTING) format:fix
 	$(RUN_LINTING) format:fix
 
 
 lint:
 lint:
 	$(RUN_LINTING) lint
 	$(RUN_LINTING) lint
 
 
+lint_ci:
+	$(RUN_LINTING_CI) lint
+
 lint_fix:
 lint_fix:
 	$(RUN_LINTING) lint:fix
 	$(RUN_LINTING) lint:fix
 
 
 typecheck:
 typecheck:
 	$(RUN_LINTING) types:check
 	$(RUN_LINTING) types:check
 
 
+typecheck_ci:
+	$(RUN_LINTING_CI) types:check
+
 test: format lint typecheck test_unit test_acceptance
 test: format lint typecheck test_unit test_acceptance
 
 
 test_unit:
 test_unit:
@@ -96,30 +106,14 @@ benchmarks:
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 	$(DOCKER_COMPOSE_TEST_ACCEPTANCE) run --rm test_acceptance npm run benchmarks
 
 
 build:
 build:
-	docker pull gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		|| docker pull gcr.io/overleaf-ops/$(PROJECT_NAME):main-deps \
-		|| echo 'nothing cached for gcr.io/overleaf-ops'
-	docker pull us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		|| docker pull us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main-deps \
-		|| echo 'nothing cached for us-east1-docker.pkg.dev/overleaf-ops/ol-docker'
 	docker build \
 	docker build \
-	 	--pull \
+		--pull \
 		--build-arg BUILDKIT_INLINE_CACHE=1 \
 		--build-arg BUILDKIT_INLINE_CACHE=1 \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):main-deps \
-		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main-deps \
-		--target base \
-		--file Dockerfile \
-		../..
-
-	docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
+		--tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
 		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
-		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
+		--tag us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):$(BRANCH_NAME) \
+		--cache-from us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME):main \
 		--file Dockerfile \
 		--file Dockerfile \
 		../..
 		../..
 
 
@@ -135,6 +129,7 @@ publish:
 	format format_fix \
 	format format_fix \
 	lint lint_fix \
 	lint lint_fix \
 	build_types typecheck \
 	build_types typecheck \
+	lint_ci format_ci typecheck_ci \
 	test test_clean test_unit test_unit_clean \
 	test test_clean test_unit test_unit_clean \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance test_acceptance_debug test_acceptance_pre_run \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \
 	test_acceptance_run test_acceptance_run_debug test_acceptance_clean \

+ 1 - 1
services/spelling/buildscript.txt

@@ -1,7 +1,7 @@
 spelling
 spelling
 --data-dirs=cache
 --data-dirs=cache
 --dependencies=
 --dependencies=
---docker-repos=gcr.io/overleaf-ops,us-east1-docker.pkg.dev/overleaf-ops/ol-docker
+--docker-repos=us-east1-docker.pkg.dev/overleaf-ops/ol-docker
 --env-add=
 --env-add=
 --env-pass-through=
 --env-pass-through=
 --esmock-loader=True
 --esmock-loader=True