@@ -109,20 +109,10 @@ jobs:
109109 python-version : ' 3.x'
110110 - name : Runner image version
111111 run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
112- - name : Restore config.cache
113- uses : actions/cache@v4
114- with :
115- path : config.cache
116- # Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
117- key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}-${{ env.pythonLocation }}
118112 - name : Install dependencies
119113 run : sudo ./.github/workflows/posix-deps-apt.sh
120114 - name : Add ccache to PATH
121115 run : echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
122- - name : Configure ccache action
123- uses : hendrikmuhs/ccache-action@v1.2
124- with :
125- save : false
126116 - name : Configure CPython
127117 run : |
128118 # Build Python with the libpython dynamic library
@@ -152,6 +142,9 @@ jobs:
152142 - name : Check for unsupported C global variables
153143 if : github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
154144 run : make check-c-globals
145+ - name : Check for undocumented C APIs
146+ run : make check-c-api-docs
147+
155148
156149 build-windows :
157150 name : >-
@@ -215,7 +208,6 @@ jobs:
215208 free-threading : true
216209 uses : ./.github/workflows/reusable-macos.yml
217210 with :
218- config_hash : ${{ needs.build-context.outputs.config-hash }}
219211 free-threading : ${{ matrix.free-threading }}
220212 os : ${{ matrix.os }}
221213
@@ -247,7 +239,6 @@ jobs:
247239 bolt : true
248240 uses : ./.github/workflows/reusable-ubuntu.yml
249241 with :
250- config_hash : ${{ needs.build-context.outputs.config-hash }}
251242 bolt-optimizations : ${{ matrix.bolt }}
252243 free-threading : ${{ matrix.free-threading }}
253244 os : ${{ matrix.os }}
@@ -278,11 +269,6 @@ jobs:
278269 persist-credentials : false
279270 - name : Runner image version
280271 run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
281- - name : Restore config.cache
282- uses : actions/cache@v4
283- with :
284- path : config.cache
285- key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
286272 - name : Register gcc problem matcher
287273 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
288274 - name : Install dependencies
@@ -304,10 +290,6 @@ jobs:
304290 - name : Add ccache to PATH
305291 run : |
306292 echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
307- - name : Configure ccache action
308- uses : hendrikmuhs/ccache-action@v1.2
309- with :
310- save : false
311293 - name : Configure CPython
312294 run : ./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl="$OPENSSL_DIR"
313295 - name : Build CPython
@@ -339,11 +321,6 @@ jobs:
339321 persist-credentials : false
340322 - name : Runner image version
341323 run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
342- - name : Restore config.cache
343- uses : actions/cache@v4
344- with :
345- path : config.cache
346- key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
347324 - name : Register gcc problem matcher
348325 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
349326 - name : Install dependencies
@@ -370,10 +347,6 @@ jobs:
370347 - name : Add ccache to PATH
371348 run : |
372349 echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
373- - name : Configure ccache action
374- uses : hendrikmuhs/ccache-action@v1.2
375- with :
376- save : false
377350 - name : Configure CPython
378351 run : |
379352 ./configure CFLAGS="-fdiagnostics-format=json" \
@@ -414,13 +387,34 @@ jobs:
414387 - name : Build and test
415388 run : ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
416389
390+ build-ios :
391+ name : iOS
392+ needs : build-context
393+ if : needs.build-context.outputs.run-tests == 'true'
394+ timeout-minutes : 60
395+ runs-on : macos-15
396+ steps :
397+ - uses : actions/checkout@v4
398+ with :
399+ persist-credentials : false
400+
401+ # GitHub recommends explicitly selecting the desired Xcode version:
402+ # https://github.com/actions/runner-images/issues/12541#issuecomment-3083850140
403+ # This became a necessity as a result of
404+ # https://github.com/actions/runner-images/issues/12541 and
405+ # https://github.com/actions/runner-images/issues/12751.
406+ - name : Select Xcode version
407+ run : |
408+ sudo xcode-select --switch /Applications/Xcode_16.4.app
409+
410+ - name : Build and test
411+ run : python3 Apple ci iOS --fast-ci --simulator 'iPhone 16e,OS=18.5'
412+
417413 build-wasi :
418414 name : ' WASI'
419415 needs : build-context
420416 if : needs.build-context.outputs.run-tests == 'true'
421417 uses : ./.github/workflows/reusable-wasi.yml
422- with :
423- config_hash : ${{ needs.build-context.outputs.config-hash }}
424418
425419 test-hypothesis :
426420 name : " Hypothesis tests on Ubuntu"
@@ -456,10 +450,6 @@ jobs:
456450 - name : Add ccache to PATH
457451 run : |
458452 echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
459- - name : Configure ccache action
460- uses : hendrikmuhs/ccache-action@v1.2
461- with :
462- save : false
463453 - name : Setup directory envs for out-of-tree builds
464454 run : |
465455 echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
@@ -470,11 +460,6 @@ jobs:
470460 run : sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR"
471461 - name : Runner image version
472462 run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
473- - name : Restore config.cache
474- uses : actions/cache@v4
475- with :
476- path : ${{ env.CPYTHON_BUILDDIR }}/config.cache
477- key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
478463 - name : Configure CPython out-of-tree
479464 working-directory : ${{ env.CPYTHON_BUILDDIR }}
480465 run : |
@@ -558,11 +543,6 @@ jobs:
558543 persist-credentials : false
559544 - name : Runner image version
560545 run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
561- - name : Restore config.cache
562- uses : actions/cache@v4
563- with :
564- path : config.cache
565- key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
566546 - name : Register gcc problem matcher
567547 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
568548 - name : Install dependencies
@@ -588,11 +568,6 @@ jobs:
588568 - name : Add ccache to PATH
589569 run : |
590570 echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
591- - name : Configure ccache action
592- uses : hendrikmuhs/ccache-action@v1.2
593- with :
594- save : ${{ github.event_name == 'push' }}
595- max-size : " 200M"
596571 - name : Configure CPython
597572 run : ./configure --config-cache --with-address-sanitizer --without-pymalloc
598573 - name : Build CPython
@@ -624,7 +599,6 @@ jobs:
624599 uses : ./.github/workflows/reusable-san.yml
625600 with :
626601 sanitizer : ${{ matrix.sanitizer }}
627- config_hash : ${{ needs.build-context.outputs.config-hash }}
628602 free-threading : ${{ matrix.free-threading }}
629603
630604 cross-build-linux :
@@ -639,11 +613,6 @@ jobs:
639613 persist-credentials : false
640614 - name : Runner image version
641615 run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
642- - name : Restore config.cache
643- uses : actions/cache@v4
644- with :
645- path : config.cache
646- key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
647616 - name : Register gcc problem matcher
648617 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
649618 - name : Set build dir
@@ -723,6 +692,7 @@ jobs:
723692 - build-ubuntu-ssltests-awslc
724693 - build-ubuntu-ssltests-openssl
725694 - build-android
695+ - build-ios
726696 - build-wasi
727697 - test-hypothesis
728698 - build-asan
@@ -759,6 +729,7 @@ jobs:
759729 build-ubuntu-ssltests-awslc,
760730 build-ubuntu-ssltests-openssl,
761731 build-android,
732+ build-ios,
762733 build-wasi,
763734 test-hypothesis,
764735 build-asan,
0 commit comments