ci: add Ubuntu 16.04 job to GitLab CI

In the preceding commits we had to convert the linux32 job to be based
on Ubuntu 20.04 instead of Ubuntu 16.04 due to a limitation in GitHub
Workflows. This was the only job left that still tested against this old
but supported Ubuntu version, and we have no other jobs that test with a
comparatively old Linux distribution.

Add a new job to GitLab CI that tests with Ubuntu 16.04 to cover the
resulting test gap. GitLab doesn't modify Docker images in the same way
GitHub does and thus doesn't fall prey to the same issue. There are two
compatibility issues uncovered by this:

  - Ubuntu 16.04 does not support HTTP/2 in Apache. We thus cannot set
    `GIT_TEST_HTTPD=true`, which would otherwise cause us to fail when
    Apache fails to start.

  - Ubuntu 16.04 cannot use recent JGit versions as they depend on a
    more recent Java runtime than we have available. We thus disable
    installing any kind of optional dependencies that do not come from
    the package manager.

These two restrictions are fine though, as we only really care about
whether Git compiles and runs on such old distributions in the first
place.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2024-09-13 07:52:51 +02:00
committed by Junio C Hamano
parent 9c261856c9
commit 7cd8f1cc6e
3 changed files with 16 additions and 1 deletions

View File

@ -25,6 +25,9 @@ test:linux:
fi
parallel:
matrix:
- jobname: linux-old
image: ubuntu:16.04
CC: gcc
- jobname: linux-sha256
image: ubuntu:latest
CC: clang

View File

@ -55,6 +55,11 @@ ubuntu-*|ubuntu32-*)
${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE
case "$distro" in
ubuntu-16.04)
# Does not support JGit, but we also don't really care about
# the others. We rather care whether Git still compiles and
# runs fine overall.
;;
ubuntu-*)
mkdir --parents "$CUSTOM_PATH"

View File

@ -336,7 +336,14 @@ ubuntu-*)
fi
MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=/usr/bin/$PYTHON_PACKAGE"
export GIT_TEST_HTTPD=true
case "$distro" in
ubuntu-16.04)
# Apache is too old for HTTP/2.
;;
*)
export GIT_TEST_HTTPD=true
;;
esac
# The Linux build installs the defined dependency versions below.
# The OS X build installs much more recent versions, whichever