1
- name : check
1
+ name : 🧪 check
2
2
on :
3
3
workflow_dispatch :
4
4
push :
5
5
branches : ["main"]
6
- tags-ignore : ["**"]
7
6
pull_request :
8
7
schedule :
9
8
- cron : " 0 8 * * *"
@@ -14,7 +13,7 @@ concurrency:
14
13
15
14
jobs :
16
15
test :
17
- name : test ${{ matrix.py }} - ${{ matrix.os }}
16
+ name : 🧪 test ${{ matrix.py }} - ${{ matrix.os }}
18
17
if : github.event_name != 'schedule' || github.repository_owner == 'pypa'
19
18
runs-on : ${{ matrix.os }}
20
19
timeout-minutes : 40
34
33
- pypy-3.8
35
34
- graalpy-24.1
36
35
os :
37
- - ubuntu-latest
38
- - macos-latest
39
- - windows-latest
36
+ - ubuntu-24.04
37
+ - macos-14
38
+ - windows-2025
40
39
include :
41
40
-
{ os: macos-latest, py: "[email protected] " }
42
41
-
{ os: macos-latest, py: "[email protected] " }
@@ -48,85 +47,77 @@ jobs:
48
47
- { os: windows-latest, py: "pypy-3.8" }
49
48
steps :
50
49
- uses : taiki-e/install-action@cargo-binstall
51
- - name : Install OS dependencies
50
+ - name : 🛠️ Install OS dependencies
52
51
run : |
53
- set -x
54
52
for i in 1 2 3; do
55
53
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;
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
61
65
sleep 1
62
66
done
63
- exit 1
64
- shell : bash
67
+ shell: bash
65
68
- uses : actions/checkout@v4
66
69
with :
67
70
fetch-depth : 0
68
- - name : Install the latest version of uv
71
+ - name : 🚀 Install the latest version of uv
69
72
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
76
74
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@')
90
75
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-') }}
95
81
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-') }}
98
92
uses : actions/setup-python@v5
99
93
with :
100
94
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/[email protected]
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
111
109
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
121
113
run : tox run --skip-pkg-install
122
114
timeout-minutes : 20
123
115
env :
124
116
PYTEST_ADDOPTS : " -vv --durations=20"
125
117
CI_RUN : " yes"
126
118
DIFF_AGAINST : HEAD
127
-
128
119
check :
129
- name : ${{ matrix.tox_env }} - ${{ matrix.os }}
120
+ name : 🔎 check ${{ matrix.tox_env }} - ${{ matrix.os }}
130
121
if : github.event_name != 'schedule' || github.repository_owner == 'pypa'
131
122
runs-on : ${{ matrix.os }}
132
123
strategy :
@@ -148,19 +139,11 @@ jobs:
148
139
- uses : actions/checkout@v4
149
140
with :
150
141
fetch-depth : 0
151
- - name : Install the latest version of uv
142
+ - name : 🚀 Install the latest version of uv
152
143
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
144
+ - name : 📦 Install tox
162
145
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 }}
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