|  | 
| 62 | 62 |         with: | 
| 63 | 63 |           fetch-depth: 1 | 
| 64 | 64 |           persist-credentials: false | 
| 65 |  | -      - name: Runner image version | 
| 66 |  | -        run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV" | 
| 67 | 65 |       - name: Check Autoconf and aclocal versions | 
| 68 | 66 |         run: | | 
| 69 | 67 |           grep "Generated by GNU Autoconf 2.72" configure | 
| @@ -104,14 +102,14 @@ jobs: | 
| 104 | 102 |         with: | 
| 105 | 103 |           python-version: '3.x' | 
| 106 | 104 |       - name: Runner image version | 
| 107 |  | -        run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV" | 
|  | 105 | +        run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" | 
| 108 | 106 |       - name: Restore config.cache | 
| 109 | 107 |         uses: actions/cache@v4 | 
| 110 | 108 |         with: | 
| 111 | 109 |           path: config.cache | 
| 112 | 110 |           # Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python | 
| 113 |  | -          key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.build-context.outputs.config-hash }}-${{ env.pythonLocation }} | 
| 114 |  | -      - name: Install Dependencies | 
|  | 111 | +          key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}-${{ env.pythonLocation }} | 
|  | 112 | +      - name: Install dependencies | 
| 115 | 113 |         run: sudo ./.github/workflows/posix-deps-apt.sh | 
| 116 | 114 |       - name: Add ccache to PATH | 
| 117 | 115 |         run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" | 
| @@ -154,7 +152,7 @@ jobs: | 
| 154 | 152 |       Windows | 
| 155 | 153 |       ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} | 
| 156 | 154 |     needs: build-context | 
| 157 |  | -    if: fromJSON(needs.build-context.outputs.run-tests) | 
|  | 155 | +    if: fromJSON(needs.build-context.outputs.run-windows-tests) | 
| 158 | 156 |     strategy: | 
| 159 | 157 |       fail-fast: false | 
| 160 | 158 |       matrix: | 
| @@ -247,13 +245,13 @@ jobs: | 
| 247 | 245 |         - true | 
| 248 | 246 |         os: | 
| 249 | 247 |         - ubuntu-24.04 | 
| 250 |  | -        - ubuntu-24.04-arm | 
|  | 248 | +        - ubuntu-22.04-arm | 
| 251 | 249 |         exclude: | 
| 252 | 250 |         # Do not test BOLT with free-threading, to conserve resources | 
| 253 | 251 |         - bolt: true | 
| 254 | 252 |           free-threading: true | 
| 255 | 253 |         # BOLT currently crashes during instrumentation on aarch64 | 
| 256 |  | -        - os: ubuntu-24.04-arm | 
|  | 254 | +        - os: ubuntu-22.04-arm | 
| 257 | 255 |           bolt: true | 
| 258 | 256 |     uses: ./.github/workflows/reusable-ubuntu.yml | 
| 259 | 257 |     with: | 
| @@ -284,15 +282,15 @@ jobs: | 
| 284 | 282 |       with: | 
| 285 | 283 |         persist-credentials: false | 
| 286 | 284 |     - name: Runner image version | 
| 287 |  | -      run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV" | 
|  | 285 | +      run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" | 
| 288 | 286 |     - name: Restore config.cache | 
| 289 | 287 |       uses: actions/cache@v4 | 
| 290 | 288 |       with: | 
| 291 | 289 |         path: config.cache | 
| 292 |  | -        key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
|  | 290 | +        key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
| 293 | 291 |     - name: Register gcc problem matcher | 
| 294 | 292 |       run: echo "::add-matcher::.github/problem-matchers/gcc.json" | 
| 295 |  | -    - name: Install Dependencies | 
|  | 293 | +    - name: Install dependencies | 
| 296 | 294 |       run: sudo ./.github/workflows/posix-deps-apt.sh | 
| 297 | 295 |     - name: Configure OpenSSL env vars | 
| 298 | 296 |       run: | | 
| @@ -347,7 +345,7 @@ jobs: | 
| 347 | 345 |         persist-credentials: false | 
| 348 | 346 |     - name: Register gcc problem matcher | 
| 349 | 347 |       run: echo "::add-matcher::.github/problem-matchers/gcc.json" | 
| 350 |  | -    - name: Install Dependencies | 
|  | 348 | +    - name: Install dependencies | 
| 351 | 349 |       run: sudo ./.github/workflows/posix-deps-apt.sh | 
| 352 | 350 |     - name: Configure OpenSSL env vars | 
| 353 | 351 |       run: | | 
| @@ -379,12 +377,12 @@ jobs: | 
| 379 | 377 |     - name: Bind mount sources read-only | 
| 380 | 378 |       run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR" | 
| 381 | 379 |     - name: Runner image version | 
| 382 |  | -      run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV" | 
|  | 380 | +      run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" | 
| 383 | 381 |     - name: Restore config.cache | 
| 384 | 382 |       uses: actions/cache@v4 | 
| 385 | 383 |       with: | 
| 386 | 384 |         path: ${{ env.CPYTHON_BUILDDIR }}/config.cache | 
| 387 |  | -        key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
|  | 385 | +        key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
| 388 | 386 |     - name: Configure CPython out-of-tree | 
| 389 | 387 |       working-directory: ${{ env.CPYTHON_BUILDDIR }} | 
| 390 | 388 |       run: | | 
| @@ -466,15 +464,15 @@ jobs: | 
| 466 | 464 |       with: | 
| 467 | 465 |         persist-credentials: false | 
| 468 | 466 |     - name: Runner image version | 
| 469 |  | -      run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV" | 
|  | 467 | +      run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" | 
| 470 | 468 |     - name: Restore config.cache | 
| 471 | 469 |       uses: actions/cache@v4 | 
| 472 | 470 |       with: | 
| 473 | 471 |         path: config.cache | 
| 474 |  | -        key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
|  | 472 | +        key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
| 475 | 473 |     - name: Register gcc problem matcher | 
| 476 | 474 |       run: echo "::add-matcher::.github/problem-matchers/gcc.json" | 
| 477 |  | -    - name: Install Dependencies | 
|  | 475 | +    - name: Install dependencies | 
| 478 | 476 |       run: sudo ./.github/workflows/posix-deps-apt.sh | 
| 479 | 477 |     - name: Set up GCC-10 for ASAN | 
| 480 | 478 |       uses: egor-tensin/setup-gcc@v1 | 
| @@ -537,19 +535,19 @@ jobs: | 
| 537 | 535 |         with: | 
| 538 | 536 |           persist-credentials: false | 
| 539 | 537 |       - name: Runner image version | 
| 540 |  | -        run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV" | 
|  | 538 | +        run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" | 
| 541 | 539 |       - name: Restore config.cache | 
| 542 | 540 |         uses: actions/cache@v4 | 
| 543 | 541 |         with: | 
| 544 | 542 |           path: config.cache | 
| 545 |  | -          key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
|  | 543 | +          key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }} | 
| 546 | 544 |       - name: Register gcc problem matcher | 
| 547 | 545 |         run: echo "::add-matcher::.github/problem-matchers/gcc.json" | 
| 548 | 546 |       - name: Set build dir | 
| 549 | 547 |         run: | 
| 550 | 548 |           # an absolute path outside of the working directoy | 
| 551 | 549 |           echo "BUILD_DIR=$(realpath ${{ github.workspace }}/../build)" >> "$GITHUB_ENV" | 
| 552 |  | -      - name: Install Dependencies | 
|  | 550 | +      - name: Install dependencies | 
| 553 | 551 |         run: sudo ./.github/workflows/posix-deps-apt.sh | 
| 554 | 552 |       - name: Configure host build | 
| 555 | 553 |         run: ./configure --prefix="$BUILD_DIR/host-python" | 
| @@ -621,6 +619,7 @@ jobs: | 
| 621 | 619 |     - build_wasi | 
| 622 | 620 |     - build_windows | 
| 623 | 621 |     - build_windows_msi | 
|  | 622 | +    - cross-build-linux | 
| 624 | 623 |     - test_hypothesis | 
| 625 | 624 |     - build_asan | 
| 626 | 625 |     - build_tsan | 
| @@ -654,10 +653,17 @@ jobs: | 
| 654 | 653 |             build_ubuntu, | 
| 655 | 654 |             build_ubuntu_ssltests, | 
| 656 | 655 |             build_wasi, | 
| 657 |  | -            build_windows, | 
| 658 | 656 |             build_asan, | 
| 659 | 657 |             build_tsan, | 
| 660 | 658 |             test_hypothesis, | 
|  | 659 | +            cross-build-linux, | 
|  | 660 | +            ' | 
|  | 661 | +            || '' | 
|  | 662 | +          }} | 
|  | 663 | +          ${{ | 
|  | 664 | +            !fromJSON(needs.build-context.outputs.run-windows-tests) | 
|  | 665 | +            && ' | 
|  | 666 | +            build_windows, | 
| 661 | 667 |             ' | 
| 662 | 668 |             || '' | 
| 663 | 669 |           }} | 
|  | 
0 commit comments