git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/4] ci: add Ubuntu 16.04 job to GitLab CI

From
Patrick Steinhardt <ps@pks.im>
Date
Sep 13, 2024, 05:52 UTC
Message-ID
<00a9fe6b7d77c16c9fd6dfe746aacf9068a76942.1726206484.git.ps@pks.im>
In-Reply-To
<20240912094238.GA589050@coredump.intra.peff.net>

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>
---

Test runs of this can be found at [1]. Note that the Alpine Linux jobs fail, due to an upstream regression in libcurl [2].

[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/210 [2]: <ZuPKvYP9ZZ2mhb4m@pks.im>

 .gitlab-ci.yml             | 3 +++
 ci/install-dependencies.sh | 5 +++++
 ci/lib.sh                  | 9 ++++++++-
 3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2589098eff7..80b1668ebeb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -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
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 735ee6f4639..08656a15308 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -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"
 
diff --git a/ci/lib.sh b/ci/lib.sh
index 51f8f59a296..74b430be238 100755
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -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

base-commit: f33406dbcc16e699be71aa4982133c325838ae1b
-- 
2.46.0.551.gc5ee8f2d1c.dirty
Previous: Junio C HamanoNext: Jeff King
Message 19 of 24 in “ci: remove 'Upload failed tests' directories' step from linux32 jobs”
  1. ci: remove 'Upload failed tests' directories' step from linux32 jobsJunio C Hamano, Sep 9, 2024
  2. Junio C HamanoSep 11, 2024
  3. Jeff KingSep 12, 2024
  4. Jeff KingSep 12, 2024
  5. 0/4 make linux32 ci job work with recent actionsJeff King, Sep 12, 2024
  6. 1/4 ci: drop run-docker scriptsJeff King, Sep 12, 2024
  7. Patrick SteinhardtSep 12, 2024
  8. 2/4 ci: unify ubuntu and ubuntu32 dependenciesJeff King, Sep 12, 2024
  9. Patrick SteinhardtSep 12, 2024
  10. 3/4 ci: use more recent linux32 imageJeff King, Sep 12, 2024
  11. Patrick SteinhardtSep 12, 2024
  12. Jeff KingSep 12, 2024
  13. Patrick SteinhardtSep 12, 2024
  14. Patrick SteinhardtSep 12, 2024
  15. Jeff KingSep 13, 2024
  16. Patrick SteinhardtSep 13, 2024
  17. 4/4 ci: use regular action versions for linux32 jobJeff King, Sep 12, 2024
  18. Junio C HamanoSep 12, 2024
  19. 5/4 ci: add Ubuntu 16.04 job to GitLab CIPatrick Steinhardt, Sep 13, 2024
  20. Jeff KingSep 13, 2024
  21. Patrick SteinhardtSep 13, 2024
  22. Jeff KingSep 13, 2024
  23. Patrick SteinhardtSep 13, 2024
  24. Junio C HamanoSep 13, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.