name: CI on: push: pull_request: jobs: lint: name: lint:ruff runs-on: ubuntu-latest container: python:3.11-slim steps: - uses: actions/checkout@v4 - name: Cache pip uses: actions/cache@v4 with: path: ~/.cache/pip key: pip-${{ hashFiles('pyproject.toml') }} - run: pip install -e ".[dev,plotting]" - run: ruff check gallery plotstyle tests format: name: format:ruff runs-on: ubuntu-latest container: python:3.11-slim steps: - uses: actions/checkout@v4 - name: Cache pip uses: actions/cache@v4 with: path: ~/.cache/pip key: pip-${{ hashFiles('pyproject.toml') }} - run: pip install -e ".[dev,plotting]" - run: ruff format --check gallery plotstyle tests typecheck: name: typecheck:ty runs-on: ubuntu-latest container: python:3.11-slim steps: - uses: actions/checkout@v4 - name: Cache pip uses: actions/cache@v4 with: path: ~/.cache/pip key: pip-${{ hashFiles('pyproject.toml') }} - run: pip install -e ".[dev,plotting]" - run: ty check gallery plotstyle vulnerabilities: name: vulnerabilities:pip-audit runs-on: ubuntu-latest container: python:3.11-slim steps: - uses: actions/checkout@v4 - name: Cache pip uses: actions/cache@v4 with: path: ~/.cache/pip key: pip-${{ hashFiles('pyproject.toml') }} - run: pip install -e ".[dev,plotting]" - run: pip-audit test: name: test:pytest runs-on: ubuntu-latest container: python:3.11-slim needs: [lint, format, typecheck, vulnerabilities] steps: - uses: actions/checkout@v4 - name: Cache pip uses: actions/cache@v4 with: path: ~/.cache/pip key: pip-${{ hashFiles('pyproject.toml') }} - run: pip install -e ".[dev,plotting]" - run: python -m pytest tests/ -v