Skip to content

Merge pull request #61 from adarshprabhu03/fix-timeline-ttl-expiry #86

Merge pull request #61 from adarshprabhu03/fix-timeline-ttl-expiry

Merge pull request #61 from adarshprabhu03/fix-timeline-ttl-expiry #86

Workflow file for this run

name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
lint:
name: Lint and type-check
runs-on: ubuntu-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Install uv
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
enable-cache: true
python-version: "3.10"
- name: Sync dependencies
run: uv sync
- name: Ruff (lint)
run: uv run ruff check .
- name: Ruff (format check)
run: uv run ruff format --check .
- name: Mypy
run: uv run mypy
- name: Deptry (langgraph-checkpoint-aerospike)
run: uv run deptry packages/langgraph-checkpoint-aerospike --config packages/langgraph-checkpoint-aerospike/pyproject.toml
- name: Deptry (langgraph-store-aerospike)
run: uv run deptry packages/langgraph-store-aerospike --config packages/langgraph-store-aerospike/pyproject.toml
test:
name: Tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.13"]
services:
aerospike:
image: aerospike/aerospike-server:8.1
ports:
- 3000:3000
# The CE image ships with default-ttl=0, which disables nsup and makes
# the server reject any write that carries a TTL. Our tests always pass
# a TTL, so enable nsup by setting a non-zero default-ttl here.
env:
DEFAULT_TTL: 30d
env:
AEROSPIKE_HOST: localhost
AEROSPIKE_PORT: "3000"
AEROSPIKE_NAMESPACE: test
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Install uv (and Python ${{ matrix.python-version }})
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
enable-cache: true
python-version: ${{ matrix.python-version }}
- name: Sync dependencies
run: uv sync
- name: Wait for Aerospike to accept connections
run: |
for i in $(seq 1 30); do
if (echo > /dev/tcp/127.0.0.1/3000) >/dev/null 2>&1; then
echo "Aerospike is reachable on port 3000"
exit 0
fi
echo "Waiting for Aerospike... ($i/30)"
sleep 1
done
echo "Aerospike never became reachable"
exit 1
- name: Run tests
run: uv run pytest -v