Skip to content

Bump security floor constraints for transitive deps #259

Bump security floor constraints for transitive deps

Bump security floor constraints for transitive deps #259

Workflow file for this run

name: Run Linting and Tests
on:
pull_request:
workflow_dispatch:
jobs:
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
fail-fast: true
matrix:
# Target Python 3.12 only for faster CI feedback.
# pyproject.toml still supports 3.10-3.12 for user flexibility.
python-version: ["3.12"]
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "latest"
enable-cache: true
python-version: ${{ matrix.python-version }}
- name: Install system dependencies (Ubuntu)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libgl1-mesa-dev \
libegl1 \
xvfb \
x11-utils \
libxkbcommon-x11-0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-xinerama0 \
libxcb-xfixes0 \
libxcb-shape0 \
libxcb-cursor0
- name: Set environment variables (macOS)
if: runner.os == 'macOS'
run: |
echo "MKL_NUM_THREADS=1" >> $GITHUB_ENV
echo "NUMEXPR_NUM_THREADS=1" >> $GITHUB_ENV
echo "OMP_NUM_THREADS=1" >> $GITHUB_ENV
- name: Install dependencies
run: uv sync --group dev --extra gui
- name: Lint with Ruff
run: uv run ruff check .
# Parallel test execution with CI-optimized flags
- name: Test with pytest (Linux)
if: runner.os == 'Linux'
run: xvfb-run --auto-servernum uv run pytest -n auto -v --dist=loadfile --color=yes --tb=short
- name: Test with pytest (Windows/macOS)
if: runner.os != 'Linux'
run: uv run pytest -n auto -v --dist=loadfile --color=yes --tb=short