diff --git a/.github/workflows/python-latest.yml b/.github/workflows/python-latest.yml new file mode 100644 index 00000000..ba87e9f6 --- /dev/null +++ b/.github/workflows/python-latest.yml @@ -0,0 +1,46 @@ +name: Python Latest + +on: + schedule: + - cron: "17 3 * * *" + workflow_dispatch: + pull_request: + paths: + - .github/workflows/python-latest.yml + +permissions: + contents: read + +concurrency: + group: python-latest-${{ github.ref }} + cancel-in-progress: true + +jobs: + native-shapes: + name: Native shapes on Python 3.14 + runs-on: ubuntu-latest + timeout-minutes: 20 + env: + UV_PYTHON: "3.14" + MATURIN_PEP517_ARGS: --profile dev + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v5 + with: + version: "0.12.3" + enable-cache: true + cache-dependency-glob: uv.lock + - uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + - name: Install Python + run: uv python install "${UV_PYTHON}" + - name: Install dependencies + run: uv sync --locked --all-groups + - name: Confirm the interpreter version + run: uv run python -c 'import sys; assert sys.version_info[:2] == (3, 14), sys.version' + - name: Check the native shape surface + run: make check-shape-surface + - name: Run unit tests + run: uv run pytest tests/unit -q -n auto