mirror of
https://github.com/snowy-yang/qqbotsdk.git
synced 2026-10-21 13:37:19 +00:00
五轮实跑证据链:工作流多次 7~26s 即死而 probe(纯 curl)每次成功; 换成 gitea 本地 clone 依旧 8s 即死——默认镜像工具链不明是主因,git/ github 只是其中一环。收缩依赖面:container 固定 python:3.13-slim (保证 python3.13+pip,免去 uv 下载 CPython);源码经 Gitea archive 接口拉 tarball(curl 已被 probe 证明可用);pyright 的 node 缺失时 apt 兜底。日志匿名不可读,改为每个关键步骤把成败写进 commit status (远程可读),失败点从此可直接定位。 部署工作流同步换 archive 拉源码;deploy/secrets 探测两轮均报 MISSING,待仓库侧补配 secrets。
52 lines
2.0 KiB
YAML
52 lines
2.0 KiB
YAML
name: 部署文档(Cloudflare Pages)
|
||
|
||
on:
|
||
push:
|
||
branches: [main]
|
||
paths:
|
||
- "index.html"
|
||
- "_sidebar.md"
|
||
- "README.md"
|
||
- "docs/**"
|
||
- "examples/**"
|
||
- "CHANGELOG.md"
|
||
- "scripts/deploy_docs.sh"
|
||
- ".gitea/workflows/deploy-docs.yml"
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
deploy-docs:
|
||
name: Cloudflare Pages
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
# 不用 actions/checkout、不用 git(runner 对 github 连通性不稳,见
|
||
# probe.yml):改走 Gitea archive 接口拉源码 tarball
|
||
- name: 拉源码
|
||
run: |
|
||
SERVER="${GITHUB_SERVER_URL:-https://gitea.4i.hk}"
|
||
curl -sL "$SERVER/api/v1/repos/$GITHUB_REPOSITORY/archive/$GITHUB_SHA.tar.gz" -o src.tgz \
|
||
&& mkdir src && tar -xzf src.tgz -C src --strip-components=1 \
|
||
&& mv src/* . && rm -rf src src.tgz
|
||
|
||
# 日志匿名不可读:把 secrets 在场情况写进 commit status 便于远程
|
||
# 排查(只报 set/MISSING,不泄露值)
|
||
- name: 探测 secrets 是否配置
|
||
env:
|
||
TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||
CF_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||
CF_ACCOUNT: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||
run: |
|
||
SERVER="${GITHUB_SERVER_URL:-https://gitea.4i.hk}"
|
||
s() { [ -n "$2" ] && echo set || echo MISSING; }
|
||
curl -s -m 10 -X POST \
|
||
-H "Authorization: token $TOKEN" \
|
||
-H 'Content-Type: application/json' \
|
||
-d "{\"state\":\"success\",\"context\":\"deploy/secrets\",\"description\":\"CLOUDFLARE_API_TOKEN=$(s x "$CF_TOKEN") CLOUDFLARE_ACCOUNT_ID=$(s x "$CF_ACCOUNT")\"}" \
|
||
"$SERVER/api/v1/repos/$GITHUB_REPOSITORY/statuses/$GITHUB_SHA" -o /dev/null
|
||
|
||
- name: 组装并部署(wrangler Direct Upload)
|
||
run: bash scripts/deploy_docs.sh
|
||
env:
|
||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|