ci: merge sgl-kernel-build-wheels x86+arm into reusable workflow (#25135)
This commit is contained in:
+17
-125
@@ -194,71 +194,14 @@ jobs:
|
||||
(!inputs.target_stage && needs.call-gate.result == 'success') ||
|
||||
(inputs.target_stage && inputs.include_wheel_build)
|
||||
)
|
||||
runs-on: x64-kernel-build-node
|
||||
timeout-minutes: 240
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- python-version: "3.10"
|
||||
cuda-version: "13.0"
|
||||
- python-version: "3.10"
|
||||
cuda-version: "12.9"
|
||||
name: Build Wheel
|
||||
steps:
|
||||
- name: Cleanup
|
||||
run: |
|
||||
sudo rm -rf $GITHUB_WORKSPACE/* || true
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
ref: ${{ inputs.pr_head_sha || inputs.git_ref || github.sha }}
|
||||
|
||||
- uses: ./.github/actions/check-maintenance
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
|
||||
- name: Free Docker disk space
|
||||
run: |
|
||||
set -x
|
||||
# build.sh retags sgl-kernel-deps:cuda${CUDA_VERSION}-${PY_TAG}-${ARCH}
|
||||
# on every run, leaving the previous image as a dangling <none>:<none>
|
||||
# entry (~16-23 GB each). Prune them before building so the runner
|
||||
# doesn't fill up. The local buildx cache at ~/.cache/sgl-kernel/buildx
|
||||
# and the tagged sgl-kernel-deps image are not affected.
|
||||
# `until=12h` avoids racing with a sibling matrix cell (cuda 12.9 vs
|
||||
# 13.0) that may have just orphaned an image seconds ago.
|
||||
docker image prune -f --filter "until=12h"
|
||||
# Drop orphaned buildx builder volumes from past `docker buildx create`
|
||||
# invocations. The active `sgl-kernel-builder` volume is held open and
|
||||
# would fail to remove anyway, but skip it explicitly for clarity.
|
||||
for v in $(docker volume ls -q | grep '^buildx_buildkit_' | grep -v '^buildx_buildkit_sgl-kernel-builder' || true); do
|
||||
echo "Removing orphan buildx volume: $v"
|
||||
docker volume rm "$v" || true
|
||||
done
|
||||
df -h /
|
||||
|
||||
- name: Build wheel for Python ${{ matrix.python-version }} and CUDA ${{ matrix.cuda-version }}
|
||||
run: |
|
||||
cd sgl-kernel
|
||||
./build.sh "${{ matrix.python-version }}" "${{ matrix.cuda-version }}"
|
||||
env:
|
||||
USE_CCACHE: 1
|
||||
|
||||
- name: Verify wheel artifacts
|
||||
run: |
|
||||
ls -alh sgl-kernel/dist
|
||||
ls -alh sgl-kernel/dist/*.whl
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: wheel-python${{ matrix.python-version }}-cuda${{ matrix.cuda-version }}
|
||||
path: sgl-kernel/dist/*
|
||||
if-no-files-found: error
|
||||
uses: ./.github/workflows/_pr-test-sgl-kernel-build.yml
|
||||
with:
|
||||
runs_on: x64-kernel-build-node
|
||||
job_display_name: Build Wheel
|
||||
pr_head_sha: ${{ inputs.pr_head_sha || '' }}
|
||||
git_ref: ${{ inputs.git_ref || '' }}
|
||||
skip_stage_health_check: ${{ inputs.skip_stage_health_check == true }}
|
||||
secrets: inherit
|
||||
|
||||
sgl-kernel-build-wheels-arm:
|
||||
needs: [check-changes, call-gate]
|
||||
@@ -276,66 +219,15 @@ jobs:
|
||||
(!inputs.target_stage && needs.call-gate.result == 'success') ||
|
||||
(inputs.target_stage && inputs.include_wheel_build)
|
||||
)
|
||||
runs-on: arm-kernel-build-node
|
||||
timeout-minutes: 240
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- python-version: "3.10"
|
||||
cuda-version: "13.0"
|
||||
- python-version: "3.10"
|
||||
cuda-version: "12.9"
|
||||
name: Build Wheel Arm
|
||||
steps:
|
||||
- name: Cleanup
|
||||
run: |
|
||||
if [ -d "$GITHUB_WORKSPACE" ]; then
|
||||
sudo rm -rf "$GITHUB_WORKSPACE"/* || true
|
||||
else
|
||||
echo "$GITHUB_WORKSPACE does not exist, nothing to clean"
|
||||
fi
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
ref: ${{ inputs.pr_head_sha || inputs.git_ref || github.sha }}
|
||||
|
||||
- uses: ./.github/actions/check-maintenance
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
|
||||
- name: Free Docker disk space
|
||||
run: |
|
||||
set -x
|
||||
# See sgl-kernel-build-wheels above for the rationale.
|
||||
docker image prune -f --filter "until=12h"
|
||||
for v in $(docker volume ls -q | grep '^buildx_buildkit_' | grep -v '^buildx_buildkit_sgl-kernel-builder' || true); do
|
||||
echo "Removing orphan buildx volume: $v"
|
||||
docker volume rm "$v" || true
|
||||
done
|
||||
df -h /
|
||||
|
||||
- name: Build wheel for Python ${{ matrix.python-version }} and CUDA ${{ matrix.cuda-version }}
|
||||
run: |
|
||||
cd sgl-kernel
|
||||
./build.sh "${{ matrix.python-version }}" "${{ matrix.cuda-version }}"
|
||||
env:
|
||||
USE_CCACHE: 1
|
||||
|
||||
- name: Verify wheel artifacts
|
||||
run: |
|
||||
ls -alh sgl-kernel/dist
|
||||
ls -alh sgl-kernel/dist/*.whl
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: wheel-python${{ matrix.python-version }}-cuda${{ matrix.cuda-version }}-aarch64
|
||||
path: sgl-kernel/dist/*
|
||||
if-no-files-found: error
|
||||
uses: ./.github/workflows/_pr-test-sgl-kernel-build.yml
|
||||
with:
|
||||
runs_on: arm-kernel-build-node
|
||||
job_display_name: Build Wheel Arm
|
||||
arch_suffix: '-aarch64'
|
||||
pr_head_sha: ${{ inputs.pr_head_sha || '' }}
|
||||
git_ref: ${{ inputs.git_ref || '' }}
|
||||
skip_stage_health_check: ${{ inputs.skip_stage_health_check == true }}
|
||||
secrets: inherit
|
||||
|
||||
call-sgl-kernel-tests:
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
|
||||
Reference in New Issue
Block a user