Skip to content

test: add cpu-32 runner diagnostic workflow #1

test: add cpu-32 runner diagnostic workflow

test: add cpu-32 runner diagnostic workflow #1

#
# Copyright (c) 2025 Huawei Technologies Co., Ltd. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This file is a part of the vllm-ascend project.
#
name: Test CPU-32 Runner
on:
pull_request:
types:
- opened
- synchronize
- reopened
push:
branches:
- 'test-cpu-32*'
defaults:
run:
shell: bash -el {0}
jobs:
test-cpu-32:
runs-on: linux-amd64-cpu-32-hk
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Print environment info
run: |
echo "=== System Information ==="
uname -a
echo ""
echo "=== CPU Information ==="
nproc
lscpu | head -20
echo ""
echo "=== Memory Information ==="
free -h
echo ""
echo "=== User and Groups ==="
whoami
id
echo ""
echo "=== Available tools ==="
which buildctl || echo "buildctl not found"
buildctl --version 2>/dev/null || echo "buildctl not available"
echo ""
echo "=== Environment Variables ==="
env | grep -E "BUILDKIT|DOCKER_CONFIG" || echo "No BUILDKIT/DOCKER_CONFIG env vars"
- name: Check buildctl availability
run: |
echo "=== Checking buildctl at job start ==="
which buildctl && echo "✅ buildctl found" || echo "❌ buildctl NOT found"
buildctl --version 2>/dev/null || echo "buildctl --version failed"
# Wait for buildctl if not available
if ! command -v buildctl &> /dev/null; then
echo "buildctl not found at start, waiting..."
for i in {1..60}; do
if command -v buildctl &> /dev/null; then
echo "✅ buildctl appeared after $i seconds"
break
fi
[ $((i % 10)) -eq 0 ] && echo "Waiting... ($i/60 sec)"
sleep 1
done
fi
# Verify buildctl is now available
if command -v buildctl &> /dev/null; then
echo "✅ buildctl is available"
buildctl --version
else
echo "❌ buildctl still not available after 60 seconds"
echo "This indicates a problem with the pod template or Vault injection"
exit 1
fi
- name: Test buildkitd connection
run: |
echo "=== Testing buildkitd connection ==="
echo "BUILDKITD_ADDR: ${BUILDKITD_ADDR:-not set}"
echo "DOCKER_CONFIG: ${DOCKER_CONFIG:-not set}"
if [ -n "$BUILDKITD_ADDR" ]; then
echo "Attempting to connect to buildkitd..."
buildctl du 2>&1 || echo "buildctl du command failed (may need certificates)"
else
echo "BUILDKITD_ADDR not set"
fi
- name: List available certificates
run: |
echo "=== Looking for certificates ==="
if [ -d "$HOME/.docker" ]; then
echo "Files in $HOME/.docker:"
ls -la "$HOME/.docker/"
echo ""
echo "File contents (first 100 chars):"
for f in "$HOME/.docker"/*; do
if [ -f "$f" ]; then
echo "--- $(basename $f) ---"
head -c 100 "$f"
echo ""
fi
done
else
echo "$HOME/.docker does not exist"
fi
- name: Keep pod running for debugging
run: |
echo "=== Pod will sleep for 5 minutes for debugging ==="
echo "You can now:"
echo " kubectl exec -it <pod-name> -n vllm-project -c runner -- bash"
echo "To check:"
echo " - which buildctl"
echo " - ls -la ~/.docker/"
echo " - env | grep BUILDKIT"
echo ""
sleep 300
echo "=== Debug time complete ==="
- name: Final verification
run: |
echo "=== Final Verification ==="
buildctl --version
echo "✅ Test completed successfully!"