From cfb55d6f04ebd867d65f78c2b39b1dacc781afb6 Mon Sep 17 00:00:00 2001
From: Christophe Chaudier <christophe@lydra.fr>
Date: Tue, 1 Apr 2025 16:19:57 +0200
Subject: [PATCH] ci: get base images on gitlab registry

---
 .gitlab-ci.yml            |  3 +++
 .gitlab/ci/get_images.yml | 14 ++++++++++++++
 .gitlab/ci/images.txt     |  2 ++
 .gitlab/ci/lint.yml       |  4 ++--
 4 files changed, 21 insertions(+), 2 deletions(-)
 create mode 100644 .gitlab/ci/get_images.yml
 create mode 100644 .gitlab/ci/images.txt

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6d1a36c..bca1399 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,2 +1,5 @@
 include:
+  - local: '.gitlab/ci/get_images.yml'
+    rules:
+      - if: $GET_IMAGES == "true"
   - local: '.gitlab/ci/lint.yml'
diff --git a/.gitlab/ci/get_images.yml b/.gitlab/ci/get_images.yml
new file mode 100644
index 0000000..cbb4b1c
--- /dev/null
+++ b/.gitlab/ci/get_images.yml
@@ -0,0 +1,14 @@
+get_images:
+  stage: .pre
+  image: 
+    name: gcr.io/go-containerregistry/crane:debug
+    entrypoint: [""]
+  script:
+    - |
+      crane auth login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
+      while IFS= read -r image; do
+        if [ ! -z "${image}" ]; then
+          echo "📥 Download image: $image"
+          crane copy "${image}" "${CI_REGISTRY_IMAGE}/${image}"
+        fi
+      done < .gitlab/ci/images.txt
diff --git a/.gitlab/ci/images.txt b/.gitlab/ci/images.txt
new file mode 100644
index 0000000..ebe671a
--- /dev/null
+++ b/.gitlab/ci/images.txt
@@ -0,0 +1,2 @@
+alpine:3.21
+tianon/true
diff --git a/.gitlab/ci/lint.yml b/.gitlab/ci/lint.yml
index 753ca64..14a1046 100644
--- a/.gitlab/ci/lint.yml
+++ b/.gitlab/ci/lint.yml
@@ -1,5 +1,5 @@
 lint:
   stage: test
-  image: alpine:3.21
+  image: ${CI_REGISTRY_IMAGE}/alpine:3.21
   script:
-    - echo "🔎 Lint" 
+    - echo "🔎 Lint"
-- 
GitLab