Skip to content

Commit ef6a618

Browse files
committed
chore(ci): Split pre-release tests into cron job
1 parent 7e0e509 commit ef6a618

File tree

2 files changed

+77
-12
lines changed

2 files changed

+77
-12
lines changed

.github/workflows/prerelease.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Prerelease tests
2+
3+
# This file tests against pre-release versions of dependencies
4+
#
5+
# Because an upstream tool can break things so easily, this is done as a
6+
# weekly cron job so notifications can be seen without making every PR fail.
7+
8+
on:
9+
push:
10+
branches:
11+
- ci/prerelease
12+
schedule:
13+
- cron: '0 0 * * 1'
14+
# Allow job to be triggered manually from GitHub interface
15+
workflow_dispatch:
16+
17+
defaults:
18+
run:
19+
shell: bash
20+
21+
# Force tox and pytest to use color
22+
env:
23+
FORCE_COLOR: true
24+
25+
concurrency:
26+
group: ${{ github.workflow }}-${{ github.ref }}
27+
cancel-in-progress: true
28+
29+
permissions:
30+
contents: read
31+
32+
jobs:
33+
test:
34+
runs-on: ${{ matrix.os-arch[0] }}
35+
continue-on-error: true
36+
strategy:
37+
fail-fast: false
38+
matrix:
39+
os-arch:
40+
- ['ubuntu-latest', 'x64']
41+
- ['windows-latest', 'x64']
42+
- ['macos-latest', 'arm64']
43+
python-version:
44+
# Oldest SPEC0-supported Python (dependencies won't release for older)
45+
- "3.12"
46+
# Latest Python
47+
- "3.14"
48+
- "3.14t"
49+
# Beta Python
50+
# - "3.15"
51+
# - "3.15t"
52+
53+
env:
54+
DEPENDS: pre
55+
ARCH: ${{ matrix.os-arch[1] }}
56+
57+
steps:
58+
- uses: actions/checkout@v6
59+
with:
60+
submodules: recursive
61+
fetch-depth: 0
62+
- name: Setup uv and Python ${{ matrix.python-version }}
63+
uses: astral-sh/setup-uv@v7
64+
with:
65+
python-version: ${{ matrix.python-version }}
66+
activate-environment: true
67+
- name: Display Python version
68+
run: python -c "import sys; print(sys.version)"
69+
- name: Install tox
70+
run: uv tool install -v tox --with=tox-uv --with=tox-gh-actions
71+
- name: Show tox config
72+
run: tox c
73+
- name: Setup test suite
74+
run: tox run -vv --notest
75+
- name: Run test suite
76+
run: tox -v --skip-pkg-install --exit-and-dump-after 1200

.github/workflows/test.yml

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ jobs:
108108
test:
109109
# Check each OS, all supported Python, minimum versions and latest releases
110110
runs-on: ${{ matrix.os }}
111-
continue-on-error: ${{ matrix.dependencies == 'pre' }}
112111
strategy:
113112
fail-fast: false
114113
matrix:
@@ -122,7 +121,7 @@ jobs:
122121
- "3.14"
123122
- "3.14t"
124123
architecture: ['x86', 'x64', 'arm64']
125-
dependencies: ['full', 'pre']
124+
dependencies: ['full']
126125
include:
127126
# Basic dependencies only
128127
- os: ubuntu-latest
@@ -186,16 +185,6 @@ jobs:
186185
- os: macos-latest
187186
architecture: x64
188187

189-
## Reduced support
190-
# Drop pre tests for macos-14
191-
- os: macos-14
192-
dependencies: pre
193-
# Drop pre tests for SPEC-0-unsupported Python versions
194-
- python-version: '3.10'
195-
dependencies: pre
196-
- python-version: '3.11'
197-
dependencies: pre
198-
199188
env:
200189
DEPENDS: ${{ matrix.dependencies }}
201190
ARCH: ${{ !contains(fromJSON('["none", "min"]'), matrix.dependencies) && matrix.architecture }}

0 commit comments

Comments
 (0)