Skip to content

Commit da4d878

Browse files
committed
echo
Signed-off-by: sirutBuasai <sirutbuasai27@outlook.com>
1 parent 5388157 commit da4d878

File tree

1 file changed

+147
-9
lines changed

1 file changed

+147
-9
lines changed

.github/workflows/pr-sglang.yml

Lines changed: 147 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ jobs:
102102
103103
set-test-environment:
104104
needs: [check-changes, build-sglang-image]
105+
if: (needs.check-changes.result == 'success' && needs.build-sglang-image.result == 'skipped') || needs.build-sglang-image.result == 'success'
105106
runs-on: ubuntu-latest
106107
outputs:
107108
aws-account-id: ${{ steps.set-env.outputs.AWS_ACCOUNT_ID }}
@@ -114,23 +115,160 @@ jobs:
114115
- name: Set test environment
115116
id: set-env
116117
run: |
118+
117119
if [[ "${{ needs.build-sglang-image.result }}" == "success" ]]; then
118120
AWS_ACCOUNT_ID=${{ vars.AWS_ACCOUNT_ID }}
119121
IMAGE_URI=${{ needs.build-sglang-image.outputs.ci-image }}
120122
elif [[ "${{ needs.check-changes.outputs.build-change }}" == "true" && "${{ needs.build-sglang-image.result }}" != "success" ]]; then
121123
AWS_ACCOUNT_ID=${{ vars.PROD_AWS_ACCOUNT_ID }}
122124
IMAGE_URI=${{ vars.PROD_AWS_ACCOUNT_ID }}.dkr.ecr.${{ vars.AWS_REGION }}.amazonaws.com/${{ env.PROD_SAGEMAKER_IMAGE }}
123125
fi
126+
echo ${AWS_ACCOUNT_ID}
127+
echo ${IMAGE_URI}
128+
echo ${SGLANG_VERSION}
124129
echo AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID} >> ${GITHUB_OUTPUT}
125-
echo SGLANG_VERSION=${SGLANG_VERSION} >> ${GITHUB_OUTPUT}
126130
echo IMAGE_URI=${IMAGE_URI} >> ${GITHUB_OUTPUT}
131+
echo SGLANG_VERSION=${SGLANG_VERSION} >> ${GITHUB_OUTPUT}
132+
133+
sglang-local-benchmark-test:
134+
needs: [set-test-environment]
135+
if: needs.set-test-environment.result == 'success'
136+
runs-on:
137+
- codebuild-runner-${{ github.run_id }}-${{ github.run_attempt }}
138+
fleet:x86-g6xl-runner
139+
steps:
140+
- name: Checkout DLC source
141+
uses: actions/checkout@v5
142+
143+
- name: Container pull
144+
uses: ./.github/actions/ecr-authenticate
145+
with:
146+
aws-account-id: ${{ needs.set-test-environment.outputs.aws-account-id }}
147+
aws-region: ${{ vars.AWS_REGION }}
148+
image-uri: ${{ needs.set-test-environment.outputs.image-uri }}
149+
150+
- name: Setup for SGLang datasets
151+
run: |
152+
mkdir -p /tmp/sglang/dataset
153+
if [ ! -f /tmp/sglang/dataset/ShareGPT_V3_unfiltered_cleaned_split.json ]; then
154+
echo "Downloading ShareGPT dataset..."
155+
wget -P /tmp/sglang/dataset https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json
156+
else
157+
echo "ShareGPT dataset already exists. Skipping download."
158+
fi
159+
160+
- name: Start container
161+
run: |
162+
CONTAINER_ID=$(docker run -d -it --rm --gpus=all \
163+
-v ${HOME}/.cache/huggingface:/root/.cache/huggingface \
164+
-v /tmp/sglang/dataset:/dataset \
165+
-p 30000:30000 \
166+
-e SM_SGLANG_MODEL_PATH=Qwen/Qwen3-0.6B \
167+
-e SM_SGLANG_REASONING_PARSER=qwen3 \
168+
-e SM_SGLANG_HOST=127.0.0.1 \
169+
-e SM_SGLANG_PORT=30000 \
170+
-e HF_TOKEN=${{ secrets.HUGGING_FACE_HUB_TOKEN }} \
171+
${{ needs.set-test-environment.outputs.image-uri }})
172+
echo "CONTAINER_ID=${CONTAINER_ID}" >> ${GITHUB_ENV}
173+
echo "Waiting for container startup ..."
174+
sleep 60s
175+
docker logs ${CONTAINER_ID}
176+
177+
- name: Run SGLang tests
178+
run: |
179+
docker exec ${CONTAINER_ID} python3 -m sglang.bench_serving \
180+
--backend sglang \
181+
--host 127.0.0.1 --port 30000 \
182+
--num-prompts 1000 \
183+
--model Qwen/Qwen3-0.6B \
184+
--dataset-name sharegpt \
185+
--dataset-path /dataset/ShareGPT_V3_unfiltered_cleaned_split.json
186+
187+
- name: Cleanup container and images
188+
if: always()
189+
uses: ./.github/actions/container-cleanup
190+
with:
191+
container_id: ${{ env.CONTAINER_ID }}
192+
193+
sglang-lang-test:
194+
needs: [set-test-environment]
195+
if: needs.set-test-environment.result == 'success'
196+
runs-on:
197+
- codebuild-runner-${{ github.run_id }}-${{ github.run_attempt }}
198+
fleet:x86-g6exl-runner
199+
steps:
200+
- name: Checkout DLC source
201+
uses: actions/checkout@v5
202+
203+
- name: Container pull
204+
uses: ./.github/actions/ecr-authenticate
205+
with:
206+
aws-account-id: ${{ needs.set-test-environment.outputs.aws-account-id }}
207+
aws-region: ${{ vars.AWS_REGION }}
208+
image-uri: ${{ needs.set-test-environment.outputs.image-uri }}
209+
210+
- name: Checkout SGLang tests
211+
uses: actions/checkout@v5
212+
with:
213+
repository: sgl-project/sglang
214+
ref: v${{ needs.set-test-environment.outputs.sglang-version }}
215+
path: sglang_source
216+
217+
- name: Start container
218+
run: |
219+
CONTAINER_ID=$(docker run -d -it --rm --gpus=all --entrypoint /bin/bash \
220+
-v ${HOME}/.cache/huggingface:/root/.cache/huggingface \
221+
-v ./sglang_source:/workdir --workdir /workdir \
222+
-e HF_TOKEN=${{ secrets.HUGGING_FACE_HUB_TOKEN }} \
223+
${{ needs.set-test-environment.outputs.image-uri }})
224+
echo "CONTAINER_ID=${CONTAINER_ID}" >> ${GITHUB_ENV}
225+
226+
- name: Setup for SGLang tests
227+
run: |
228+
docker exec ${CONTAINER_ID} sh -c '
229+
set -eux
230+
231+
bash scripts/ci/ci_install_dependency.sh
232+
'
233+
234+
- name: Run SGLang tests
235+
run: |
236+
docker exec ${CONTAINER_ID} sh -c '
237+
set -eux
238+
nvidia-smi
127239
128-
test-sglang-image:
240+
# Frontend Test
241+
cd /workdir/test/lang
242+
python3 run_suite.py --suite per-commit
243+
'
244+
245+
- name: Cleanup container and images
246+
if: always()
247+
uses: ./.github/actions/container-cleanup
248+
with:
249+
container_id: ${{ env.CONTAINER_ID }}
250+
251+
sglang-sagemaker-endpoint-test:
129252
needs: [set-test-environment]
130-
if: needs.set-test-environment.result == 'success'
131-
uses: ./.github/workflows/test-sglang.yml
132-
with:
133-
aws-account-id: ${{ needs.set-test-environment.outputs.aws-account-id }}
134-
aws-region: ${{ vars.AWS_REGION }}
135-
image-uri: ${{ needs.set-test-environment.outputs.image-uri }}
136-
sglang-version: ${{ needs.set-test-environment.outputs.sglang-version }}
253+
if: needs.set-test-environment.result == 'success'
254+
runs-on:
255+
- codebuild-runner-${{ github.run_id }}-${{ github.run_attempt }}
256+
fleet:default-runner
257+
steps:
258+
- name: Checkout DLC source
259+
uses: actions/checkout@v5
260+
261+
- run: .github/scripts/runner_setup.sh
262+
- name: Install test dependencies
263+
run: |
264+
uv venv
265+
source .venv/bin/activate
266+
267+
uv pip install -r test/requirements.txt
268+
uv pip install -r test/sglang/sagemaker/requirements.txt
269+
270+
- name: Run sagemaker tests
271+
run: |
272+
source .venv/bin/activate
273+
cd test/
274+
python3 -m pytest -vs -rA --image-uri ${{ needs.set-test-environment.outputs.image-uri }} sglang/sagemaker

0 commit comments

Comments
 (0)