|
19 | 19 | type: string |
20 | 20 | # System configuration |
21 | 21 | osversion_xcodeversion_toxenv_tuples: |
| 22 | + # As of 2024-02, "runs-on: macos-latest" is macos-12. |
| 23 | + # and "runs-on: macos-14" selects the new M1 runners. |
| 24 | + # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories |
22 | 25 | description: 'Stringified JSON object' |
23 | 26 | default: >- |
24 | | - [["latest", "", "homebrew-macos-usrlocal-minimal"], |
25 | | - ["latest", "", "homebrew-macos-usrlocal-standard"], |
26 | | - ["11", "xcode_13.2.1", "homebrew-macos-usrlocal-minimal"], |
| 27 | + [["11", "xcode_13.2.1", "homebrew-macos-usrlocal-minimal"], |
| 28 | + ["12", "", "homebrew-macos-usrlocal-minimal"], |
27 | 29 | ["12", "", "homebrew-macos-usrlocal-standard"], |
| 30 | + ["12", "", "homebrew-macos-usrlocal-python3_xcode-standard"], |
| 31 | + ["12", "", "homebrew-macos-usrlocal-maximal"], |
28 | 32 | ["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"], |
29 | | - ["latest", "", "homebrew-macos-usrlocal-maximal"], |
30 | | - ["latest", "", "homebrew-macos-usrlocal-python3_xcode-standard"], |
| 33 | + ["14", "", "homebrew-macos-opthomebrew-standard"], |
31 | 34 | ["latest", "", "conda-forge-macos-minimal"], |
32 | | - ["latest", "", "conda-forge-macos-standard"]] |
| 35 | + ["latest", "", "conda-forge-macos-standard"], |
| 36 | + ["14", "", "conda-forge-macos-standard"]] |
33 | 37 | type: string |
34 | 38 | extra_sage_packages: |
35 | 39 | description: 'Extra Sage packages to install as system packages' |
|
41 | 45 | free_disk_space: |
42 | 46 | default: false |
43 | 47 | type: boolean |
| 48 | + timeout: |
| 49 | + description: 'Elapsed time (seconds) at which to kill the build' |
| 50 | + default: 20000 |
| 51 | + type: number |
44 | 52 | # |
45 | 53 | # For use in upstream CIs. |
46 | 54 | # |
@@ -74,10 +82,16 @@ jobs: |
74 | 82 | repository: ${{ inputs.sage_repo }} |
75 | 83 | ref: ${{ inputs.sage_ref }} |
76 | 84 | fetch-depth: 10000 |
77 | | - |
| 85 | + - uses: actions/setup-python@v5 |
| 86 | + # As of 2024-02-03, the macOS M1 runners do not have preinstalled python or pipx. |
| 87 | + # Installing pipx follows the approach of https://github.com/pypa/cibuildwheel/pull/1743 |
| 88 | + id: python |
| 89 | + with: |
| 90 | + python-version: "3.8 - 3.12" |
| 91 | + update-environment: false |
78 | 92 | - name: Install test prerequisites |
79 | 93 | run: | |
80 | | - brew install tox |
| 94 | + "${{ steps.python.outputs.python-path }}" -m pip install pipx |
81 | 95 | - name: Download upstream artifact |
82 | 96 | uses: actions/download-artifact@v3 |
83 | 97 | with: |
@@ -129,7 +143,8 @@ jobs: |
129 | 143 | *) export TARGETS_PRE="${{ inputs.targets_pre }}" TARGETS="${{ inputs.targets }} TARGETS_OPTIONAL="${{ inputs.targets_optional }} |
130 | 144 | ;; |
131 | 145 | esac |
132 | | - MAKE="make -j12" tox -e $TOX_ENV -- SAGE_NUM_THREADS=4 $TARGETS |
| 146 | + (sleep ${{ inputs.timeout }}; pkill make) & |
| 147 | + MAKE="make -j12" EXTRA_SAGE_PACKAGES="${{ inputs.extra_sage_packages }}" "${{ steps.python.outputs.python-path }}" -m pipx run tox -e $TOX_ENV -- SAGE_NUM_THREADS=6 $TARGETS |
133 | 148 | - name: Prepare logs artifact |
134 | 149 | run: | |
135 | 150 | mkdir -p "artifacts/$LOGS_ARTIFACT_NAME"; cp -r .tox/*/log "artifacts/$LOGS_ARTIFACT_NAME" |
|
0 commit comments