Skip to content

feat: context parallelism #55

feat: context parallelism

feat: context parallelism #55

name: Integration Tests
on:
workflow_dispatch:
inputs:
model_filter:
description: 'Model filter for tests (e.g. "qwen")'
required: false
default: ''
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
integration-tests:
runs-on: mac2.metal
timeout-minutes: 60
env:
PROJECT_ROOT: ${{ github.workspace }}
PYTHONPATH: src
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Environment
uses: ./.github/actions/setup-env
with:
python_version: '3.12'
- name: Ensure compatible gRPC/protobuf versions
run: |
uv pip install --upgrade "grpcio>=1.75.1" "protobuf>=6.31.1"
- name: Kill processes on required ports
run: |
for port in 8080 8081 58080 58081; do
lsof -ti:$port | xargs kill -9 2>/dev/null || true
done
sleep 2
- name: Start shard server
uses: ./.github/actions/start-shard
with:
http_port: '8081'
grpc_port: '58081'
- name: Start API server
uses: ./.github/actions/start-api
with:
http_port: '8080'
grpc_port: '58080'
- name: Run integration tests
run: |
sleep 10 # Wait for servers to initialize
if [ -n "${{ github.event.inputs.model_filter }}" ]; then
uv run pytest tests/integration/test_model_catalog.py -v -x -k "${{ github.event.inputs.model_filter }}" --tb=short
else
uv run pytest tests/integration/test_model_catalog.py -v -x --tb=short
fi
- name: Cleanup servers
if: always()
uses: ./.github/actions/cleanup-servers
- name: Show logs on failure
if: failure()
run: |
echo "=== Shard logs ==="
cat shard.log 2>/dev/null || echo "(no shard log)"
echo ""
echo "=== API logs ==="
cat api.log 2>/dev/null || echo "(no API log)"