Files
qqbotsdk/.gitea/workflows/probe.yml
T

58 lines
2.0 KiB
YAML

name: 网络探测
# runner 环境盘点:出网连通性 + 基础工具链 + clone/装 uv 迷你实测,
# 结果写入 commit status(公开仓库匿名可读)。
# 改动本文件推送即触发。
on:
push:
paths: ['.gitea/workflows/probe.yml']
workflow_dispatch:
jobs:
probe:
name: runner 环境探测
runs-on: ubuntu-latest
steps:
- name: 工具链与连通性探测
run: |
SERVER="${GITHUB_SERVER_URL:-https://gitea.4i.hk}"
post() {
curl -s -m 10 -X POST \
-H "Authorization: token $TOKEN" \
-H 'Content-Type: application/json' \
-d "{\"state\":\"success\",\"context\":\"probe/$1\",\"description\":\"$2\"}" \
"$SERVER/api/v1/repos/$GITHUB_REPOSITORY/statuses/$GITHUB_SHA" \
-o /dev/null -w "probe/$1 = $2 (HTTP %{http_code})\n"
}
inv() { command -v "$1" >/dev/null 2>&1 && echo yes || echo no; }
code() { curl -s -m 8 -o /dev/null -w '%{http_code}' -L "$1"; }
post python3 "$(python3 -V 2>/dev/null || echo absent)"
post pip "$(inv pip)"
post pip3 "$(inv pip3)"
post uv "$(inv uv)"
post git "$(inv git)"
post npx "$(inv npx)"
post pypi "$(code https://pypi.org/simple/)"
post npmmirror "$(code https://registry.npmmirror.com)"
rm -rf /tmp/src
if git clone --depth=1 "$SERVER/$GITHUB_REPOSITORY.git" /tmp/src >/dev/null 2>&1; then
post clone ok
else
post clone fail
fi
if cd /tmp/src 2>/dev/null \
&& { pip install uv >/dev/null 2>&1 \
|| pip3 install uv >/dev/null 2>&1 \
|| python3 -m pip install uv >/dev/null 2>&1; }; then
post pip-install-uv ok
else
post pip-install-uv fail
fi
UV_BIN="$(command -v uv || echo "$HOME/.local/bin/uv")"
post uv-version "$("$UV_BIN" --version 2>/dev/null || echo none)"