[monorepo] use content hash as docker image cache key (#29046)

* [monorepo] remove docker-repos flag from build scripts

* [monorepo] use content hash as docker image cache key

* [packer] jenkins-worker: populate build cache for all services

* [v1] adopt smarter docker caching

* [latexqc] adopt smarter docker caching

* [monorepo] refresh docker cache in Jenkins

* [packer] jenkins-worker: increase disk size

* [monorepo] run jenkins_docker_build_cache as Jenkins user for v1

* [monorepo] define MONOREPO at the top of all the Makefiles

* [monorepo] add --build-arg BUILDKIT_INLINE_CACHE=1 everywhere

GitOrigin-RevId: 8110c6e68727a52ea80f3ec71711d30e17d69499
This commit is contained in:
Jakob Ackermann
2025-10-14 14:46:45 +02:00
committed by Copybot
parent f694da4443
commit 15a6e8ba04
40 changed files with 341 additions and 160 deletions

View File

@@ -22,6 +22,7 @@ pipeline {
stage('Build') {
steps {
dir('services/git-bridge') {
sh 'make refresh_cache -j2'
retry(count: 3) {
sh 'make docker_build_base'
}

View File

@@ -28,10 +28,22 @@ $(MVN_TARGET): $(shell find src -type f) pom.xml
build: $(MVN_TARGET)
docker_build_base:
docker build --tag $(IMAGE_CI) --target base .
docker build --pull \
--build-arg BUILDKIT_INLINE_CACHE=1 \
--cache-from $(IMAGE_REPO_BRANCH) \
--cache-from $(IMAGE_REPO_MAIN) \
--tag $(IMAGE_CI) \
--target base \
.
docker_build:
docker build --tag $(IMAGE_REPO_BRANCH) --tag $(IMAGE_REPO_FINAL) .
docker build --pull \
--build-arg BUILDKIT_INLINE_CACHE=1 \
--cache-from $(IMAGE_REPO_BRANCH) \
--cache-from $(IMAGE_REPO_MAIN) \
--tag $(IMAGE_REPO_BRANCH) \
--tag $(IMAGE_REPO_FINAL) \
.
format:
mvn $(MVN_OPTS) com.spotify.fmt:fmt-maven-plugin:check
@@ -56,6 +68,13 @@ clean:
package: clean
mvn $(MVN_OPTS) package -DskipTests
refresh_cache: refresh_cache_branch
refresh_cache_branch:
docker inspect $(IMAGE_REPO_BRANCH) > /dev/null && docker pull $(IMAGE_REPO_BRANCH) || true
refresh_cache: refresh_cache_latest
refresh_cache_latest:
docker inspect $(IMAGE_REPO_MAIN) > /dev/null && docker pull $(IMAGE_REPO_MAIN) || true
push:
docker push $(IMAGE_REPO_FINAL)
@@ -63,7 +82,7 @@ push_branch:
docker push $(IMAGE_REPO_BRANCH)
clean_ci:
-docker rmi -f $(IMAGE_CI) $(IMAGE_REPO_BRANCH) $(IMAGE_REPO_FINAL)
-docker rmi -f $(IMAGE_CI) $(IMAGE_REPO_FINAL)
-git clean -xdf .
.PHONY: run package build clean test runtime-conf