Bump actions/checkout from 4 to 7 #39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| unit: | |
| name: Unit (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - name: Harden the runner (Audit all outbound calls) | |
| uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: pip | |
| cache-dependency-path: pyproject.toml | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| pip install pre-commit | |
| - name: Preflight (S0 toolchain contract) | |
| run: python scripts/preflight.py | |
| - name: Pre-commit hooks | |
| run: pre-commit run --all-files | |
| - name: Unit tests | |
| run: pytest tests/unit -q | |
| integration: | |
| name: Integration (Aerospike CE) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Harden the runner (Audit all outbound calls) | |
| uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Checkout LMCache (dev, L2 plugin APIs) | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: LMCache/LMCache | |
| ref: dev | |
| path: LMCache | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| cache-dependency-path: pyproject.toml | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip wheel | |
| # LMCache build-system pins setuptools 77–80 (see LMCache/pyproject.toml). | |
| pip install "setuptools>=77.0.3,<81.0.0" | |
| # CPU-only torch keeps the hosted runner under ~7 GiB RAM (lmcache pulls torch). | |
| pip install "torch" --index-url https://download.pytorch.org/whl/cpu | |
| # torch CPU can downgrade setuptools; restore LMCache's range before editable install. | |
| pip install "setuptools>=77.0.3,<81.0.0" --force-reinstall | |
| # PyPI 0.4.x lacks L2StoreResult; install dev (pure Python on CI via NO_NATIVE_EXT). | |
| NO_NATIVE_EXT=1 pip install -e ./LMCache --no-build-isolation | |
| pip install -e . --no-deps | |
| pip install "aerospike>=14.0.0,<19.0.0" | |
| pip install pytest pytest-asyncio | |
| - name: Start Aerospike CE (Docker) | |
| run: | | |
| chmod +x scripts/start_aerospike_ce.sh scripts/stop_aerospike_ce.sh | |
| ./scripts/start_aerospike_ce.sh | |
| docker ps --filter "name=lmcache-aerospike-ci" | |
| cat .aerospike-ci.env | |
| - name: Integration tests | |
| run: | | |
| set -a | |
| source .aerospike-ci.env | |
| set +a | |
| pytest tests/integration -v --tb=short | |
| - name: Stop Aerospike CE | |
| if: always() | |
| run: ./scripts/stop_aerospike_ce.sh |