feat: context parallelism #55
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: 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)" |