main
sh 84 lines 2.31 KB
Raw
1 #!/usr/bin/env bash
2 # Fast structural smoke test for the full ROCm CI image.
3
4 set -euo pipefail
5
6 run_smoke_checks() {
7 local required_dir=""
8
9 for required_dir in \
10 /vllm-workspace \
11 /vllm-workspace/tests \
12 /vllm-workspace/src/vllm; do
13 if [[ ! -d "${required_dir}" ]]; then
14 echo "Missing directory: ${required_dir}" >&2
15 return 1
16 fi
17 done
18 if [[ ! -x /vllm-workspace/src/vllm/vllm-rs ]]; then
19 echo "Missing executable: /vllm-workspace/src/vllm/vllm-rs" >&2
20 return 1
21 fi
22
23 command -v python3
24 command -v uv
25 command -v pytest
26
27 if ! command -v amd-smi >/dev/null 2>&1 \
28 && ! command -v rocminfo >/dev/null 2>&1; then
29 echo "No ROCm CLI found in image" >&2
30 return 1
31 fi
32
33 PYTHONDONTWRITEBYTECODE=1 python3 - <<'PY'
34 import torch
35 import vllm
36
37 print(torch.__version__)
38 print(vllm.__version__)
39 PY
40
41 echo "AMD image smoke OK"
42 }
43
44 if [[ "${1:-}" == "--inside" ]]; then
45 run_smoke_checks
46 exit
47 fi
48 if (($#)); then
49 echo "Usage: $0 [--inside]" >&2
50 exit 2
51 fi
52
53 if [[ "${ROCM_CI_ARTIFACT_ONLY:-0}" == "1" ]]; then
54 base_refreshed=""
55 if command -v buildkite-agent >/dev/null 2>&1; then
56 base_refreshed="$(buildkite-agent meta-data get rocm-base-refresh 2>/dev/null || true)"
57 fi
58 if [[ "${base_refreshed}" != "1" ]]; then
59 echo "ROCM_CI_ARTIFACT_ONLY=1; no full image was built, skipping smoke test"
60 exit 0
61 fi
62 fi
63
64 smoke_marker="./build/rocm-smoke-export/vllm-smoke-ok"
65 expected_smoke_id="${BUILDKITE_BUILD_ID:-local}"
66 if [[ -f "${smoke_marker}" \
67 && ( -z "${VLLM_CI_SMOKE_IMAGE:-}" \
68 || "${VLLM_CI_SMOKE_IMAGE}" == "${IMAGE_TAG:-}" ) ]]; then
69 actual_smoke_id="$(< "${smoke_marker}")"
70 if [[ "${actual_smoke_id}" != "${expected_smoke_id}" ]]; then
71 echo "ROCm smoke marker belongs to ${actual_smoke_id}, not ${expected_smoke_id}" \
72 >&2
73 exit 1
74 fi
75 echo "AMD image smoke OK (verified inside BuildKit)"
76 rm -f -- "${smoke_marker}"
77 rmdir -- "$(dirname "${smoke_marker}")" 2>/dev/null || true
78 exit
79 fi
80
81 image_ref="${VLLM_CI_SMOKE_IMAGE:-${IMAGE_TAG:-rocm/vllm-ci:${BUILDKITE_COMMIT:?BUILDKITE_COMMIT is required}}}"
82
83 docker run --rm -i --network=none --entrypoint /bin/bash "${image_ref}" \
84 -s -- --inside < "${BASH_SOURCE[0]}"