| name: Release Documentation |
|
|
| on: |
| release: |
| types: [published] |
| push: |
| branches: |
| - main |
| paths: |
| - "docs/**" |
| - "python/sglang/version.py" |
| - "python/sglang/**" |
| workflow_dispatch: |
|
|
| concurrency: |
| group: release-docs-${{ github.ref }} |
| cancel-in-progress: true |
|
|
| env: |
| SGLANG_IS_IN_CI: true |
|
|
| jobs: |
| execute-and-deploy: |
| runs-on: 1-gpu-runner |
| if: github.repository == 'sgl-project/sglang' |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@v4 |
|
|
| - name: Fetch full git history for release index |
| if: github.event_name == 'release' |
| run: | |
| git fetch --prune --unshallow || git fetch --prune --depth=0 |
| |
| - name: Install dependencies |
| run: | |
| bash scripts/ci/cuda/ci_install_dependency.sh |
| pip install -r docs/requirements.txt |
| apt-get update && apt-get install -y pandoc parallel retry |
| ln -sf "$(which python3)" /usr/bin/python |
| |
| - name: Setup Jupyter Kernel |
| run: | |
| python -m ipykernel install --user --name python3 --display-name "Python 3" |
| |
| - name: Execute notebooks |
| timeout-minutes: 40 |
| run: | |
| cd docs |
| make clean |
| make compile |
| |
| - name: Push HTML to sgl-project.github.io |
| timeout-minutes: 30 |
| env: |
| GITHUB_TOKEN: ${{ secrets.GH_PAT_FOR_DOCUMENTATION }} |
| run: | |
| cd docs |
| make html |
| make markdown |
| python3 wrap_run_llm.py |
| |
| if [[ "${{ github.event_name }}" == "release" ]]; then |
| python3 release_lookup/generate_index.py --output release_lookup/release_index.json |
|
|
| |
| mkdir -p _build/html/release_lookup |
| cp release_lookup/index.html _build/html/release_lookup/ |
| cp release_lookup/release_index.json _build/html/release_lookup/ |
| fi |
|
|
| cd _build/html |
|
|
| git clone https://$GITHUB_TOKEN@github.com/sgl-project/sgl-project.github.io.git ../sgl-project.github.io --depth 1 |
| if [[ "${{ github.event_name }}" == "release" ]]; then |
| find ../sgl-project.github.io/ -mindepth 1 -not -path "../sgl-project.github.io/.git*" -not -name CNAME -not -name ".jekyll" -not -name ".nojekyll" -delete |
| else |
| find ../sgl-project.github.io/ -mindepth 1 -not -path "../sgl-project.github.io/.git*" -not -path "../sgl-project.github.io/release_lookup*" -not -name CNAME -not -name ".jekyll" -not -name ".nojekyll" -delete |
| fi |
| cp -r * ../sgl-project.github.io |
| cp ../../README.md ../sgl-project.github.io/README.md |
| cd ../sgl-project.github.io |
| git config user.name "sglang-bot" |
| git config user.email "sglangbot@gmail.com" |
| git add . |
| git commit -m "Update $(date +'%Y-%m-%d %H:%M:%S')" |
| git push https://$GITHUB_TOKEN@github.com/sgl-project/sgl-project.github.io.git main |
| cd .. |
| rm -rf sgl-project.github.io |
|
|