1- name : check
1+ name : 🧪 check
22on :
33 workflow_dispatch :
44 push :
55 branches : ["main"]
6- tags-ignore : ["**"]
76 pull_request :
87 schedule :
98 - cron : " 0 8 * * *"
@@ -14,7 +13,7 @@ concurrency:
1413
1514jobs :
1615 test :
17- name : test ${{ matrix.py }} - ${{ matrix.os }}
16+ name : 🧪 test ${{ matrix.py }} - ${{ matrix.os }}
1817 if : github.event_name != 'schedule' || github.repository_owner == 'pypa'
1918 runs-on : ${{ matrix.os }}
2019 timeout-minutes : 40
@@ -23,144 +22,128 @@ jobs:
2322 matrix :
2423 py :
2524 - " 3.13t"
26- - " 3.13"
27- - " 3.12"
28- - " 3.11"
29- - " 3.10"
30- - " 3.9"
31- - " 3.8"
32- - pypy-3.10
33- - pypy-3.9
34- - pypy-3.8
35- - graalpy-24.1
25+ # - "3.13"
26+ # - "3.12"
27+ # - "3.11"
28+ # - "3.10"
29+ # - "3.9"
30+ # - "3.8"
31+ # - pypy-3.10
32+ # - pypy-3.9
33+ # - pypy-3.8
34+ # - graalpy-24.1
3635 os :
37- - ubuntu-latest
38- - macos-latest
39- - windows-latest
40- include :
41- - { os: macos-latest, py: "brew@3.11" }
42- - { os: macos-latest, py: "brew@3.10" }
43- - { os: macos-latest, py: "brew@3.9" }
44- exclude :
45- - { os: windows-latest, py: "graalpy-24.1" }
46- - { os: windows-latest, py: "pypy-3.10" }
47- - { os: windows-latest, py: "pypy-3.9" }
48- - { os: windows-latest, py: "pypy-3.8" }
36+ - ubuntu-24.04
37+ - macos-14
38+ - windows-2025
39+ # include:
40+ # - { os: macos-latest, py: "brew@3.11" }
41+ # - { os: macos-latest, py: "brew@3.10" }
42+ # - { os: macos-latest, py: "brew@3.9" }
43+ # exclude:
44+ # - { os: windows-latest, py: "graalpy-24.1" }
45+ # - { os: windows-latest, py: "pypy-3.10" }
46+ # - { os: windows-latest, py: "pypy-3.9" }
47+ # - { os: windows-latest, py: "pypy-3.8" }
4948 steps :
5049 - uses : taiki-e/install-action@cargo-binstall
51- - name : Install OS dependencies
52- run : |
53- set -x
54- for i in 1 2 3; do
55- echo "try $i" && \
56- ${{ runner.os == 'Linux' && 'sudo apt-get update -y && sudo apt-get install snapd fish csh -y' || true }} && \
57- ${{ runner.os == 'Linux' && 'cargo binstall -y nu' || true }} && \
58- ${{ runner.os == 'macOS' && 'brew install fish tcsh nushell' || true }} && \
59- ${{ runner.os == 'Windows' && 'choco install nushell' || true }} && \
60- exit 0 || true;
61- sleep 1
62- done
63- exit 1
64- shell : bash
50+ # - name: 🛠️ Install OS dependencies
51+ # run: |
52+ # for i in 1 2 3; do
53+ # echo "try $i" && \
54+ # if [ "${{ runner.os }}" = "Linux" ]; then
55+ # sudo apt-get install -y software-properties-common
56+ # sudo apt-add-repository ppa:fish-shell/release-4 -y
57+ # sudo apt-get update -y
58+ # sudo apt-get install snapd fish csh -y
59+ # cargo binstall -y nu
60+ # elif [ "${{ runner.os }}" = "macOS" ]; then
61+ # brew install fish tcsh nushell || brew upgrade fish tcsh nushell
62+ # elif [ "${{ runner.os }}" = "Windows" ]; then
63+ # choco install nushell
64+ # fi && exit 0 || true
65+ # sleep 1
66+ # done
67+ # shell: bash
6568 - uses : actions/checkout@v4
6669 with :
6770 fetch-depth : 0
68- - name : Install the latest version of uv
71+ - name : 🚀 Install the latest version of uv
6972 uses : astral-sh/setup-uv@v4
70- with :
71- enable-cache : true
72- cache-dependency-glob : " pyproject.toml"
73- github-token : ${{ secrets.GITHUB_TOKEN }}
74- - name : Add .local/bin to PATH Windows
75- if : runner.os == 'Windows'
73+ - name : 📦 Install tox
7674 shell : bash
77- run : echo "$USERPROFILE/.local/bin" >> $GITHUB_PATH
78- - name : Add .local/bin to PATH macos-13
79- if : matrix.os == 'macos-13'
80- shell : bash
81- run : echo ~/.local/bin >> $GITHUB_PATH
82- - name : Install tox
83- if : matrix.py == '3.13' || matrix.py == '3.13t'
84- run : uv tool install --python-preference only-managed --python 3.12 tox --with tox-uv
85- - name : Install tox
86- if : " !(matrix.py == '3.13' || matrix.py == '3.13t')"
87- run : uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
88- - name : Setup brew python for test ${{ matrix.py }}
89- if : startsWith(matrix.py, 'brew@')
9075 run : |
91- set -e
92- PY=$(echo '${{ matrix.py }}' | cut -c 6-)
93- brew cleanup && brew upgrade python@$PY || brew install python@$PY
94- echo "/usr/local/opt/python@$PY/libexec/bin" >>"${GITHUB_PATH}"
76+ PYVER=$([[ "${{ matrix.py }}" == "3.13" || "${{ matrix.py }}" == "3.13t" ]] && echo 3.12 || echo 3.13)
77+ uv tool install --python-preference only-managed --python $PYVER tox
78+ uv tool install --python-preference only-managed --python $PYVER virtualenv
79+ - name : 🐍 Setup Python for test ${{ matrix.py }}
80+ if : ${{ !startsWith(matrix.py, 'graalpy-') }}
9581 shell : bash
96- - name : Setup python for test ${{ matrix.py }}
97- if : " !(startsWith(matrix.py, 'brew@') || endsWith(matrix.py, 't'))"
82+ run : |
83+ if [[ "${{ matrix.py }}" == brew@* ]]; then
84+ PY=$(echo '${{ matrix.py }}' | cut -c 6-)
85+ brew install python@$PY || brew upgrade python@$PY
86+ echo "/usr/local/opt/python@$PY/libexec/bin" >>"${GITHUB_PATH}"
87+ else
88+ uv python install -v --preview "${{ matrix.py }}"
89+ fi
90+ - name : 🐍 Setup Graal Python for test ${{ matrix.py }}
91+ if : ${{ startsWith(matrix.py, 'graalpy-') }}
9892 uses : actions/setup-python@v5
9993 with :
10094 python-version : ${{ matrix.py }}
101- allow-prereleases : true
102- # quansight-labs to install free-threaded python until actions/setup-python supports it
103- # https://github.com/actions/setup-python/issues/771
104- - name : Setup python for test ${{ matrix.py }}
105- if : endsWith(matrix.py, 't')
106- uses : quansight-labs/setup-python@v5.3.1
107- with :
108- python-version : ${{ matrix.py }}
109- - name : Pick environment to run
110- if : matrix.py != '3.13t'
95+ - name : 📋 Print PATH entries
96+ shell : bash
97+ run : |
98+ echo "$PATH" | tr ':' '\n'
99+ ls -alth ~/.local/bin
100+ which -a python3.13t
101+ ~/.local/bin/python3.13t --version
102+ ~/.local/bin/python3.13t -m site
103+ virtualenv -p 3.13t venv -vvv
104+ echo -n "\n\n\nRunning tox with Python 3.13t\n\n\n"
105+ tox --version
106+ tox run -e 3.13t -vvvv --notest
107+ - name : 🧬 Pick environment to run
108+ shell : bash
111109 run : python tasks/pick_tox_env.py ${{ matrix.py }}
112- - name : Pick environment to run
113- if : matrix.py == '3.13t' && runner.os != 'Windows'
114- run : python tasks/pick_tox_env.py ${{ matrix.py }} $Python_ROOT_DIR/bin/python
115- - name : Pick environment to run
116- if : matrix.py == '3.13t' && runner.os == 'Windows'
117- run : python tasks/pick_tox_env.py ${{ matrix.py }} $env:Python_ROOT_DIR\python.exe
118- - name : Setup test suite
119- run : tox run -vv --notest --skip-missing-interpreters false
120- - name : Run test suite
110+ - name : 🏗️ Setup test suite
111+ run : tox run -vvvv --notest --skip-missing-interpreters false
112+ - name : 🏃 Run test suite
121113 run : tox run --skip-pkg-install
122114 timeout-minutes : 20
123115 env :
124116 PYTEST_ADDOPTS : " -vv --durations=20"
125117 CI_RUN : " yes"
126118 DIFF_AGAINST : HEAD
127-
128- check :
129- name : ${{ matrix.tox_env }} - ${{ matrix.os }}
130- if : github.event_name != 'schedule' || github.repository_owner == 'pypa'
131- runs-on : ${{ matrix.os }}
132- strategy :
133- fail-fast : false
134- matrix :
135- os :
136- - ubuntu-latest
137- - windows-latest
138- tox_env :
139- - dev
140- - docs
141- - readme
142- - upgrade
143- - zipapp
144- exclude :
145- - { os: windows-latest, tox_env: readme }
146- - { os: windows-latest, tox_env: docs }
147- steps :
148- - uses : actions/checkout@v4
149- with :
150- fetch-depth : 0
151- - name : Install the latest version of uv
152- uses : astral-sh/setup-uv@v4
153- with :
154- enable-cache : true
155- cache-dependency-glob : " pyproject.toml"
156- github-token : ${{ secrets.GITHUB_TOKEN }}
157- - name : Add .local/bin to Windows PATH
158- if : runner.os == 'Windows'
159- shell : bash
160- run : echo "$USERPROFILE/.local/bin" >> $GITHUB_PATH
161- - name : Install tox
162- run : uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
163- - name : Setup check suite
164- run : tox r -vv --notest --skip-missing-interpreters false -e ${{ matrix.tox_env }}
165- - name : Run check for ${{ matrix.tox_env }}
166- run : tox r --skip-pkg-install -e ${{ matrix.tox_env }}
119+ # check:
120+ # name: 🔎 check ${{ matrix.tox_env }} - ${{ matrix.os }}
121+ # if: github.event_name != 'schedule' || github.repository_owner == 'pypa'
122+ # runs-on: ${{ matrix.os }}
123+ # strategy:
124+ # fail-fast: false
125+ # matrix:
126+ # os:
127+ # - ubuntu-latest
128+ # - windows-latest
129+ # tox_env:
130+ # - dev
131+ # - docs
132+ # - readme
133+ # - upgrade
134+ # - zipapp
135+ # exclude:
136+ # - { os: windows-latest, tox_env: readme }
137+ # - { os: windows-latest, tox_env: docs }
138+ # steps:
139+ # - uses: actions/checkout@v4
140+ # with:
141+ # fetch-depth: 0
142+ # - name: 🚀 Install the latest version of uv
143+ # uses: astral-sh/setup-uv@v4
144+ # - name: 📦 Install tox
145+ # run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
146+ # - name: 🏗️ Setup check suite
147+ # run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.tox_env }}
148+ # - name: 🏃 Run check for ${{ matrix.tox_env }}
149+ # run: tox run --skip-pkg-install -e ${{ matrix.tox_env }}
0 commit comments