Skip to content

Commit a46a67b

Browse files
miss-islingtonStanFromIrelandhugovk
authored
[3.13] gh-110793: Add CI job that runs tests with an installed build (GH-152664) (#155482)
(cherry picked from commit 8a4ee5c) Co-authored-by: Stan Ulbrych <stan@python.org> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
1 parent 178aaa2 commit a46a67b

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,12 @@ jobs:
283283
with:
284284
free-threading: ${{ matrix.free-threading }}
285285

286+
build-ubuntu-installed:
287+
name: 'Ubuntu (installed)'
288+
needs: build-context
289+
if: needs.build-context.outputs.run-ubuntu == 'true'
290+
uses: ./.github/workflows/reusable-install.yml
291+
286292
build-ubuntu-ssltests:
287293
name: 'Ubuntu SSL tests with OpenSSL'
288294
runs-on: ${{ matrix.os }}
@@ -592,6 +598,7 @@ jobs:
592598
- build-windows-msi
593599
- build-macos
594600
- build-ubuntu
601+
- build-ubuntu-installed
595602
- build-ubuntu-ssltests
596603
- build-wasi
597604
- test-hypothesis
@@ -638,6 +645,7 @@ jobs:
638645
!fromJSON(needs.build-context.outputs.run-ubuntu)
639646
&& '
640647
build-ubuntu,
648+
build-ubuntu-installed,
641649
build-ubuntu-ssltests,
642650
test-hypothesis,
643651
build-asan,
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Reusable Ubuntu (installed)
2+
3+
on:
4+
workflow_call:
5+
6+
permissions:
7+
contents: read
8+
9+
env:
10+
FORCE_COLOR: 1
11+
12+
jobs:
13+
build-install-test:
14+
name: build, install and test
15+
runs-on: ubuntu-24.04-arm
16+
timeout-minutes: 60
17+
env:
18+
PYTHONSTRICTEXTENSIONBUILD: 1
19+
steps:
20+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
21+
with:
22+
persist-credentials: false
23+
- name: Register gcc problem matcher
24+
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
25+
- name: Set install dir
26+
run:
27+
echo "INSTALL_DIR=$(realpath "${GITHUB_WORKSPACE}/../installed-python")" >> "$GITHUB_ENV"
28+
- name: Install dependencies
29+
run: sudo ./.github/workflows/posix-deps-apt.sh
30+
- name: Configure CPython
31+
run: ./configure --config-cache --prefix="$INSTALL_DIR"
32+
- name: Build CPython
33+
run: make -j
34+
- name: Install CPython
35+
run: make install
36+
- name: Set installed interpreter
37+
run: |
38+
ldversion=$(./python -c 'import sysconfig; print(sysconfig.get_config_var("LDVERSION"))')
39+
echo "INSTALLED_PYTHON=${INSTALL_DIR}/bin/python${ldversion}" >> "$GITHUB_ENV"
40+
- name: Display build info
41+
run: |
42+
"$INSTALLED_PYTHON" -m test.pythoninfo
43+
- name: Test the installed Python
44+
run: xvfb-run "$INSTALLED_PYTHON" -m test --fast-ci --timeout=900

0 commit comments

Comments
 (0)