Merge pull request #2179 from jjardon/jjardon/f44

ci: Add Fedora 44, remove other Fedora images
diff --git a/.github/common.env b/.github/common.env
index de24cb5..11ff253 100644
--- a/.github/common.env
+++ b/.github/common.env
@@ -1,6 +1,6 @@
 # Shared common variables
 
-CI_IMAGE_VERSION=master-2310077904
+CI_IMAGE_VERSION=master-2779642792
 CI_TOXENV_MAIN=py310,py311,py312,py313,py314
 CI_TOXENV_PLUGINS=py310-plugins,py311-plugins,py312-plugins,py313-plugins,py314-plugins
 CI_TOXENV_ALL="${CI_TOXENV_MAIN},${CI_TOXENV_PLUGINS}"
diff --git a/.github/compose/ci.docker-compose.yml b/.github/compose/ci.docker-compose.yml
index c0590e7..5dd7ac1 100644
--- a/.github/compose/ci.docker-compose.yml
+++ b/.github/compose/ci.docker-compose.yml
@@ -1,7 +1,7 @@
 version: '3.4'
 
 x-tests-template: &tests-template
-    image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:42-${CI_IMAGE_VERSION:-latest}
+    image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:44-${CI_IMAGE_VERSION:-latest}
     command: tox -vvvvv -- --color=yes --integration
     environment:
       TOXENV: ${CI_TOXENV_ALL}
@@ -30,13 +30,9 @@
     <<: *tests-template
     image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-debian:13-${CI_IMAGE_VERSION:-latest}
 
-  fedora-42:
+  fedora-44:
     <<: *tests-template
-    image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:42-${CI_IMAGE_VERSION:-latest}
-
-  fedora-43:
-    <<: *tests-template
-    image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:43-${CI_IMAGE_VERSION:-latest}
+    image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:44-${CI_IMAGE_VERSION:-latest}
 
   ubuntu-22.04:
     <<: *tests-template
diff --git a/.github/run-ci.sh b/.github/run-ci.sh
index 8118d0a..f369032 100755
--- a/.github/run-ci.sh
+++ b/.github/run-ci.sh
@@ -102,7 +102,7 @@
 
 
 if [ -z "${test_names}" ]; then
-    for test_name in mypy debian-12 debian-13 fedora-42 fedora-43 fedora-missing-deps ubuntu-22.04; do
+    for test_name in mypy debian-12 debian-13 fedora-44 fedora-missing-deps ubuntu-22.04; do
 	if ! runTest "${test_name}"; then
 	    echo "Tests failed"
 	    exit 1
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c2c4d2a..657ad6f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,8 +38,7 @@
         test-name:
           - debian-12
           - debian-13
-          - fedora-42
-          - fedora-43
+          - fedora-44
           - fedora-missing-deps
           - ubuntu-22.04
           - lint
diff --git a/tests/integration/interactive_build.py b/tests/integration/interactive_build.py
index 580d698..9a63ecf 100644
--- a/tests/integration/interactive_build.py
+++ b/tests/integration/interactive_build.py
@@ -36,6 +36,13 @@
 def build_session(integration_cache, datafiles, element_name):
     project = str(datafiles)
 
+    # Interactive tests need a usable TERM so tools like click's pager (less)
+    # run interactively.  Containers used for CI often leave TERM unset even
+    # when pexpect allocates a PTY.
+    env = os.environ.copy()
+    if not env.get("TERM") or env["TERM"] == "dumb":
+        env["TERM"] = "xterm"
+
     # Spawn interactive session using `configured()` context manager in order
     # to get the same config file as the `cli` fixture.
     with runcli.configured(project, config={"sourcedir": integration_cache.sources}) as config_file:
@@ -50,6 +57,7 @@
                 "build",
                 element_name,
             ],
+            env=env,
             timeout=PEXPECT_TIMEOUT_SHORT,
         )
         yield session