Skip to content

ci: 3.13, attestations, and some modernization #1607

ci: 3.13, attestations, and some modernization

ci: 3.13, attestations, and some modernization #1607

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
- develop
workflow_dispatch:
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
env:
# The "FORCE_COLOR" variable, when set to 1,
# tells Nox to colorize itself.
FORCE_COLOR: "1"
jobs:
pre-commit:
runs-on: ubuntu-latest
name: Check SDist
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: PyLint
run: pipx run nox -s pylint -- --format=github
check-lite:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
name: Python ${{ matrix.python-version }} - Lite
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- uses: astral-sh/setup-uv@v3
- name: Test lite package
run: uvx nox -s lite-${{ matrix.python-version.key || matrix.python-version }} --verbose
check-full:
needs: [check-lite]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
name: Python ${{ matrix.python-version }} - Full
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: astral-sh/setup-uv@v3
- name: Install nox
run: uv tool install nox
- name: Run doctests on Python 3.11
if: matrix.python-version == 3.11
run: nox -s doctests-${{ matrix.python-version.key || matrix.python-version }} --verbose
- name: Test package and generate coverage report
run: nox -s coverage-${{ matrix.python-version.key || matrix.python-version }} --verbose
- name: Upload coverage report
uses: codecov/codecov-action@v4.5.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
discheck:
runs-on: ubuntu-latest
name: Disassemble check
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.8.13
- uses: astral-sh/setup-uv@v3
- name: Check compute features
run: uv pip install --system .[test,test-extras]
- name: Test package
run: python -m pytest -ra -m dis --ignore tests/test_notebooks.py
pass:
needs: [pre-commit, check-lite, check-full, discheck]
runs-on: ubuntu-latest
steps:
- run: echo "All jobs passed"
# root:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Get Conda
# uses: conda-incubator/setup-miniconda@v2
# with:
# environment-file: environment.yml
# activate-environment: vector
# - name: Run tests
# shell: "bash -l {0}"
# run: python -m pytest tests/root_tests -ra