gitlab-ci: Add downstream job for lxml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 87d835b..a8e8ad4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -311,6 +311,11 @@
   only:
     - master@GNOME/libxml2
 
+downstream-lxml:
+  image: registry.gitlab.gnome.org/gnome/libxml2
+  script:
+    - sh .gitlab-ci/downstream-lxml.sh
+
 downstream-nokogiri:
   # owner: @flavorjones
   image: ghcr.io/sparklemotion/nokogiri-test:upstream-libxml
diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile
index 56372f4..c2b4999 100644
--- a/.gitlab-ci/Dockerfile
+++ b/.gitlab-ci/Dockerfile
@@ -42,3 +42,7 @@
 # PHP
 RUN apt-get install -y --no-install-recommends \
         bison re2c libsqlite3-dev
+
+# lxml
+RUN apt-get install -y --no-install-recommends \
+        cython3
diff --git a/.gitlab-ci/downstream-lxml.sh b/.gitlab-ci/downstream-lxml.sh
new file mode 100644
index 0000000..176dc6d
--- /dev/null
+++ b/.gitlab-ci/downstream-lxml.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -e
+
+srcdir=$(pwd)
+
+mkdir -p install
+installdir="$srcdir/install"
+export PKG_CONFIG_PATH="$installdir/lib/pkgconfig"
+
+sh autogen.sh "--prefix=$installdir" --with-http --with-zlib --without-python
+make -j$(nproc)
+make install
+
+git clone --depth 1 https://gitlab.gnome.org/GNOME/libxslt.git
+cd libxslt
+sh autogen.sh \
+    "--prefix=$installdir" \
+    "--with-libxml-prefix=$installdir" \
+    --without-python
+make -j$(nproc)
+make install
+cd ..
+
+git clone --depth 1 https://github.com/lxml/lxml.git
+cd lxml
+make
+LD_LIBRARY_PATH="$installdir/lib" make test