From 13d419243f9ffd149749370b60ab199e64bd8c9a Mon Sep 17 00:00:00 2001
From: georg <georg@riseup.net>
Date: Thu, 9 Jan 2025 08:06:44 +0000
Subject: [PATCH] CI: lint and build Python3.{13,14} images

Closes #13
---
 .gitlab-ci.yml | 12 ++++++++++++
 python3.13     | 18 ++++++++++++++++++
 python3.14     | 18 ++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 python3.13
 create mode 100644 python3.14

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5c0f254..bf6f261 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -68,6 +68,12 @@ lint-python3.11:
 lint-python3.12:
   <<: *lint-dockerfile
 
+lint-python3.13:
+  <<: *lint-dockerfile
+
+lint-python3.14:
+  <<: *lint-dockerfile
+
 build-archlinux:
   <<: *build-docker-image
 
@@ -101,3 +107,9 @@ build-python3.11:
 
 build-python3.12:
   <<: *build-docker-image
+
+build-python3.13:
+  <<: *build-docker-image
+
+build-python3.14:
+  <<: *build-docker-image
diff --git a/python3.13 b/python3.13
new file mode 100644
index 0000000..ab9a9bc
--- /dev/null
+++ b/python3.13
@@ -0,0 +1,18 @@
+FROM python:3.13-slim-bookworm
+
+RUN printf "deb https://deb.debian.org/debian unstable main" > /etc/apt/sources.list.d/unstable.list \
+&&  printf "Package: *\nPin: release a=stable\nPin-Priority: 900\n\nPackage: *\nPin: release a=stable-security\nPin-Priority: 900\n\nPackage: *\nPin: release a=stable-updates\nPin-Priority: 900\n\nPackage: libimage-exiftool-perl\nPin: release a=unstable\nPin-Priority: 900\n" > /etc/apt/preferences.d/pinning \
+&&  apt-get update \
+&&  apt-get install --no-install-recommends --no-install-suggests --yes \
+    ffmpeg \
+    gir1.2-gdkpixbuf-2.0 \
+    gir1.2-poppler-0.18 \
+    gir1.2-rsvg-2.0 \
+    git \
+    libcairo2-dev \
+    libgirepository1.0-dev \
+    libimage-exiftool-perl \
+&&  apt-get upgrade --yes \
+&&  rm -rf /var/cache/apt/* /var/lib/apt/lists/* \
+&&  git -C mat2 pull --no-rebase || git clone https://0xacab.org/jvoisin/mat2.git mat2 \
+&&  (cd mat2 && pip install --disable-pip-version-check --no-cache-dir --upgrade-strategy only-if-needed --verbose .)
diff --git a/python3.14 b/python3.14
new file mode 100644
index 0000000..cd26ed0
--- /dev/null
+++ b/python3.14
@@ -0,0 +1,18 @@
+FROM python:3.14-rc-slim-bookworm
+
+RUN printf "deb https://deb.debian.org/debian unstable main" > /etc/apt/sources.list.d/unstable.list \
+&&  printf "Package: *\nPin: release a=stable\nPin-Priority: 900\n\nPackage: *\nPin: release a=stable-security\nPin-Priority: 900\n\nPackage: *\nPin: release a=stable-updates\nPin-Priority: 900\n\nPackage: libimage-exiftool-perl\nPin: release a=unstable\nPin-Priority: 900\n" > /etc/apt/preferences.d/pinning \
+&&  apt-get update \
+&&  apt-get install --no-install-recommends --no-install-suggests --yes \
+    ffmpeg \
+    gir1.2-gdkpixbuf-2.0 \
+    gir1.2-poppler-0.18 \
+    gir1.2-rsvg-2.0 \
+    git \
+    libcairo2-dev \
+    libgirepository1.0-dev \
+    libimage-exiftool-perl \
+&&  apt-get upgrade --yes \
+&&  rm -rf /var/cache/apt/* /var/lib/apt/lists/* \
+&&  git -C mat2 pull --no-rebase || git clone https://0xacab.org/jvoisin/mat2.git mat2 \
+&&  (cd mat2 && pip install --disable-pip-version-check --no-cache-dir --upgrade-strategy only-if-needed --verbose .)
-- 
GitLab