Files
qqbotsdk/.gitea/workflows/deploy-docs.yml
T
snowy-yang a09d1788cd fix: CI 锁定 python:3.13-slim 容器、走 archive 接口拉源码,每步结果上报 status
五轮实跑证据链:工作流多次 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。
2026-09-24 20:48:16 +08:00

52 lines
2.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 }}