[3.15] gh-110793: Add CI job that runs tests with an installed build (GH-152664) (#155483)

hugovk <[email protected]> Mon, 10 Aug 2026 08:08:58 -0400 (EDT)
Newsgroups gmane.comp.python.cvs
Message-ID <[email protected]>
https://github.com/python/cpython/commit/be93a4a9baded11e05f32100835014f560e77cc9
commit: be93a4a9baded11e05f32100835014f560e77cc9
branch: 3.15
author: Miss Islington (bot) <[email protected]>
committer: hugovk <[email protected]>
date: 2026-08-10T15:08:44+03:00
summary:

[3.15] gh-110793: Add CI job that runs tests with an installed build (GH-152664) (#155483)

Co-authored-by: Stan Ulbrych <[email protected]>
Co-authored-by: Hugo van Kemenade <[email protected]>

files:
A .github/workflows/reusable-install.yml
M .github/workflows/build.yml

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 52fa7745e901655..547ab2ed7403847 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -308,6 +308,12 @@ jobs:
       os: ${{ matrix.os }}
       test-opts: ${{ matrix.test-opts || '' }}
 
+  build-ubuntu-installed:
+    name: 'Ubuntu (installed)'
+    needs: build-context
+    if: needs.build-context.outputs.run-ubuntu == 'true'
+    uses: ./.github/workflows/reusable-install.yml
+
   build-ubuntu-ssltests:
     name: 'Ubuntu SSL tests'
     runs-on: ${{ matrix.os }}
@@ -700,6 +706,7 @@ jobs:
     - build-windows-msi
     - build-macos
     - build-ubuntu
+    - build-ubuntu-installed
     - build-ubuntu-ssltests
     - build-ios
     - build-emscripten
@@ -750,6 +757,7 @@ jobs:
             !fromJSON(needs.build-context.outputs.run-ubuntu)
             && '
             build-ubuntu,
+            build-ubuntu-installed,
             build-ubuntu-ssltests,
             test-hypothesis,
             build-asan,
diff --git a/.github/workflows/reusable-install.yml b/.github/workflows/reusable-install.yml
new file mode 100644
index 000000000000000..337da684882d29f
--- /dev/null
+++ b/.github/workflows/reusable-install.yml
@@ -0,0 +1,44 @@
+name: Reusable Ubuntu (installed)
+
+on:
+  workflow_call:
+
+permissions:
+  contents: read
+
+env:
+  FORCE_COLOR: 1
+
+jobs:
+  build-install-test:
+    name: build, install and test
+    runs-on: ubuntu-26.04-arm
+    timeout-minutes: 60
+    env:
+      PYTHONSTRICTEXTENSIONBUILD: 1
+    steps:
+    - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+      with:
+        persist-credentials: false
+    - name: Register gcc problem matcher
+      run: echo "::add-matcher::.github/problem-matchers/gcc.json"
+    - name: Set install dir
+      run:
+        echo "INSTALL_DIR=$(realpath "${GITHUB_WORKSPACE}/../installed-python")" >> "$GITHUB_ENV"
+    - name: Install dependencies
+      run: sudo ./.github/workflows/posix-deps-apt.sh
+    - name: Configure CPython
+      run: ./configure --config-cache --prefix="$INSTALL_DIR"
+    - name: Build CPython
+      run: make -j
+    - name: Install CPython
+      run: make install
+    - name: Set installed interpreter
+      run: |
+        ldversion=$(./python -c 'import sysconfig; print(sysconfig.get_config_var("LDVERSION"))')
+        echo "INSTALLED_PYTHON=${INSTALL_DIR}/bin/python${ldversion}" >> "$GITHUB_ENV"
+    - name: Display build info
+      run: |
+        "$INSTALLED_PYTHON" -m test.pythoninfo
+    - name: Test the installed Python
+      run: xvfb-run "$INSTALLED_PYTHON" -m test --fast-ci --timeout=900

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]