From 823d9fdf625651a4730d87e8caa7e01454d6e743 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Simon=20K=C3=BCnzel?= <simonk@fsmpi.rwth-aachen.de>
Date: Fri, 28 Feb 2025 02:29:02 +0100
Subject: [PATCH] fixup! Add package caching for CI

---
 api/Dockerfile                             | 3 ++-
 generate_ci_pipeline.py                    | 2 ++
 job_controller/Dockerfile                  | 3 ++-
 job_controller/jobs/ffmpeg_base/Dockerfile | 3 +++
 4 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/api/Dockerfile b/api/Dockerfile
index cbcab80..7272314 100755
--- a/api/Dockerfile
+++ b/api/Dockerfile
@@ -3,7 +3,8 @@ ARG ENV_TYPE
 ARG GIT_COMMIT_SHA
 FROM registry.git.fsmpi.rwth-aachen.de/videoag/backend/${ENV_TYPE}_common_py:${GIT_COMMIT_SHA}
 
-ARG PIP_CACHE_DIR
+# used by pip as env var
+ARG PIP_CACHE_DIR=
 
 ENV VIDEOAG_API_GIT_COMMIT_HASH $GIT_COMMIT_SHA
 
diff --git a/generate_ci_pipeline.py b/generate_ci_pipeline.py
index 0d5e18c..c123dd8 100644
--- a/generate_ci_pipeline.py
+++ b/generate_ci_pipeline.py
@@ -95,6 +95,7 @@ echo "{\\"auths\\":{\\"$CI_REGISTRY\\":{\\"username\\":\\"$CI_REGISTRY_USER\\",\
             
             # See https://github.com/GoogleContainerTools/kaniko/issues/969#issuecomment-2160910028
             f"--build-arg=PIP_CACHE_DIR=$CI_PROJECT_DIR/.cache/pip",
+            f"--build-arg=APT_CACHE_DIR=$CI_PROJECT_DIR/.cache/apt",
             f"--cache=true",
         ]
         
@@ -113,6 +114,7 @@ echo "{\\"auths\\":{\\"$CI_REGISTRY\\":{\\"username\\":\\"$CI_REGISTRY_USER\\",\
         key: videoag-cache-{self.context.env_type()}
         paths:
             - .cache/pip
+            - .cache/apt
     script:
         - {self._get_auth_echo()}
         - echo {self.context.commit_sha}
diff --git a/job_controller/Dockerfile b/job_controller/Dockerfile
index 677adfd..86768f2 100644
--- a/job_controller/Dockerfile
+++ b/job_controller/Dockerfile
@@ -3,7 +3,8 @@ ARG ENV_TYPE
 ARG GIT_COMMIT_SHA
 FROM registry.git.fsmpi.rwth-aachen.de/videoag/backend/${ENV_TYPE}_common_py:${GIT_COMMIT_SHA}
 
-ARG PIP_CACHE_DIR
+# used by pip as env var
+ARG PIP_CACHE_DIR=
 # Empty by default
 ARG GIT_COMMIT_TAG=
 
diff --git a/job_controller/jobs/ffmpeg_base/Dockerfile b/job_controller/jobs/ffmpeg_base/Dockerfile
index adf7f36..b1ea20a 100644
--- a/job_controller/jobs/ffmpeg_base/Dockerfile
+++ b/job_controller/jobs/ffmpeg_base/Dockerfile
@@ -5,6 +5,9 @@ ARG ENV_TYPE
 ARG GIT_COMMIT_SHA
 FROM registry.git.fsmpi.rwth-aachen.de/videoag/backend/${ENV_TYPE}_job_base:${GIT_COMMIT_SHA}
 
+ARG APT_CACHE_DIR=
+RUN if [[ ! -z "$APT_CACHE_DIR" ]]; then echo "Dir::Cache::Archives $APT_CACHE_DIR" >> /etc/apt/apt.conf.d/ci_caching; fi
+
 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
     --mount=type=cache,target=/var/lib/apt,sharing=locked \
     apt-get update && apt-get --no-install-recommends install -y ffmpeg
-- 
GitLab