3030jobs :
3131 stubtest-stdlib :
3232 name : " stubtest: stdlib"
33- if : ${{ github.repository == 'python/typeshed' || github.event_name == 'workflow_dispatch ' }}
33+ if : ${{ github.repository == 'python/typeshed' || github.event_name != 'schedule ' }}
3434 runs-on : ${{ matrix.os }}
3535 strategy :
3636 matrix :
3737 os : ["ubuntu-latest", "windows-latest", "macos-latest"]
38- python-version : ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev "]
38+ python-version : ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
3939 fail-fast : false
4040
4141 steps :
42- - uses : actions/checkout@v4
42+ - uses : actions/checkout@v5
4343 - name : Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
44- uses : actions/setup-python@v5
44+ uses : actions/setup-python@v6
4545 with :
4646 python-version : ${{ matrix.python-version }}
4747 cache : pip
@@ -50,21 +50,24 @@ jobs:
5050 check-latest : true
5151 - name : Install dependencies
5252 run : pip install -r requirements-tests.txt
53+ # Temporary to get @disjoint_base support; can remove once mypy 1.18 is released
54+ - name : Install mypy from git
55+ run : pip install git+https://github.com/python/mypy.git@116b92bae7b5dbf5e6bd36fd9b0c6804973e5554
5356 - name : Run stubtest
5457 run : python tests/stubtest_stdlib.py
5558
5659 stubtest-third-party :
5760 name : " stubtest: third party"
58- if : ${{ github.repository == 'python/typeshed' || github.event_name == 'workflow_dispatch ' }}
61+ if : ${{ github.repository == 'python/typeshed' || github.event_name != 'schedule ' }}
5962 runs-on : ${{ matrix.os }}
6063 strategy :
6164 matrix :
6265 os : ["ubuntu-latest", "windows-latest", "macos-latest"]
6366 shard-index : [0, 1, 2, 3]
6467 fail-fast : false
6568 steps :
66- - uses : actions/checkout@v4
67- - uses : actions/setup-python@v5
69+ - uses : actions/checkout@v5
70+ - uses : actions/setup-python@v6
6871 with :
6972 python-version : " 3.13"
7073 cache : pip
@@ -73,50 +76,59 @@ jobs:
7376 stubs/**/METADATA.toml
7477 - name : Install dependencies
7578 run : pip install -r requirements-tests.txt
76- - name : Run stubtest
79+ - name : Install required system packages
7780 shell : bash
7881 run : |
7982 PACKAGES=$(python tests/get_stubtest_system_requirements.py)
8083
8184 if [ "${{ runner.os }}" = "Linux" ]; then
8285 if [ -n "$PACKAGES" ]; then
86+ printf "Installing APT packages:\n $(echo $PACKAGES | sed 's/ /\n /g')\n"
8387 sudo apt-get update -q && sudo apt-get install -qy $PACKAGES
8488 fi
85-
86- PYTHON_EXECUTABLE="xvfb-run python"
8789 else
8890 if [ "${{ runner.os }}" = "macOS" ] && [ -n "$PACKAGES" ]; then
91+ printf "Installing Homebrew packages:\n $(echo $PACKAGES | sed 's/ /\n /g')\n"
8992 brew install -q $PACKAGES
9093 fi
9194
9295 if [ "${{ runner.os }}" = "Windows" ] && [ -n "$PACKAGES" ]; then
96+ printf "Installing Chocolatey packages:\n $(echo $PACKAGES | sed 's/ /\n /g')\n"
9397 choco install -y $PACKAGES
9498 fi
95-
99+ fi
100+ - name : Run stubtest
101+ shell : bash
102+ run : |
103+ if [ "${{ runner.os }}" = "Linux" ]; then
104+ PYTHON_EXECUTABLE="xvfb-run python"
105+ else
96106 PYTHON_EXECUTABLE="python"
97107 fi
98108
99- $PYTHON_EXECUTABLE tests/stubtest_third_party.py --specified -platforms-only --num-shards 4 --shard-index ${{ matrix.shard-index }}
109+ $PYTHON_EXECUTABLE tests/stubtest_third_party.py --ci -platforms-only --num-shards 4 --shard-index ${{ matrix.shard-index }}
100110
101111 stub-uploader :
102112 name : stub_uploader tests
103- if : ${{ github.repository == 'python/typeshed' || github.event_name == 'workflow_dispatch ' }}
113+ if : ${{ github.repository == 'python/typeshed' || github.event_name != 'schedule ' }}
104114 runs-on : ubuntu-latest
105115 steps :
106116 - name : Checkout typeshed
107- uses : actions/checkout@v4
117+ uses : actions/checkout@v5
108118 with :
109119 path : typeshed
110120 - name : Checkout stub_uploader
111- uses : actions/checkout@v4
121+ uses : actions/checkout@v5
112122 with :
113123 repository : typeshed-internal/stub_uploader
114124 path : stub_uploader
115- - uses : actions/setup-python@v5
125+ - uses : actions/setup-python@v6
116126 with :
117127 # Keep in sync with stub_uploader's check_scripts.yml workflow.
118128 python-version : " 3.13"
119129 - uses : astral-sh/setup-uv@v6
130+ with :
131+ version-file : " typeshed/requirements-tests.txt"
120132 - name : Run tests
121133 run : |
122134 cd stub_uploader
@@ -132,7 +144,7 @@ jobs:
132144 permissions :
133145 issues : write
134146 steps :
135- - uses : actions/github-script@v7
147+ - uses : actions/github-script@v8
136148 with :
137149 github-token : ${{ secrets.GITHUB_TOKEN }}
138150 script : |
0 commit comments