name: Unit Test on: push: branches: [ main ] paths: - "python/sglang/**" - "test/**" pull_request: branches: [ main ] paths: - "python/sglang/**" - "test/**" workflow_dispatch: concurrency: group: unit-test-${{ github.ref }} cancel-in-progress: true jobs: unit-test-jobs: if: github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request' runs-on: 1-gpu-runner strategy: matrix: test_type: ['backend-0', 'backend-1', 'frontend'] steps: - name: Checkout code uses: actions/checkout@v3 - name: Install dependencies run: | pip install --upgrade pip pip install -e "python[dev]" pip install flashinfer -i https://flashinfer.ai/whl/cu121/torch2.4/ --force-reinstall - name: Run test timeout-minutes: 20 run: | if [ "${{ matrix.test_type }}" = "frontend" ]; then cd test/lang python3 run_suite.py --suite minimal elif [ "${{ matrix.test_type }}" = "backend-0" ]; then cd test/srt python3 run_suite.py --suite minimal --range-begin 0 --range-end 8 elif [ "${{ matrix.test_type }}" = "backend-1" ]; then cd test/srt python3 run_suite.py --suite minimal --range-begin 8 fi unit-test: needs: unit-test-jobs runs-on: ubuntu-latest steps: - name: Merge step run: echo "This is an empty merge step"