GFramework/.github/workflows/publish-docs.yml
GeWuYou 7ddf82877e docs: 添加文档站点配置和开发环境说明
- 配置 GitHub Pages 部署工作流,添加 Configure GitHub Pages 步骤
- 集成 demodrive-ai/llms-txt-action 生成 LLM 可读索引文件
- 添加 sitemap.xml 生成和 LLM 产物验证机制
- 创建完整的 VitePress 中文文档配置文件
- 添加开发环境能力清单和 AI 使用约定
- 配置多语言导航和侧边栏结构
- 设置搜索、页脚和社会链接等 UI 组件
2026-04-13 23:00:29 +08:00

108 lines
3.1 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.

# 工作流名称Publish Docs
# 该工作流用于在推送标签或手动触发时构建并部署文档到 GitHub Pages
name: Publish Docs
# 触发条件配置
# 当推送以 'v' 开头的标签时触发,或者通过 GitHub UI 手动触发
on:
push:
tags:
- 'v*'
workflow_dispatch:
# 权限配置
# 配置工作流所需的权限:
# - contents: read读取仓库内容
# - pages: write写入 GitHub Pages
# - id-token: write写入身份令牌
permissions:
contents: read
pages: write
id-token: write
# 并发控制配置
# 设置并发组为 "pages",并且不允许取消正在进行的任务
concurrency:
group: pages
cancel-in-progress: false
# 定义工作流中的任务
jobs:
# 构建和部署任务
build-and-deploy:
# 条件判断:仅当推送的是正式版本标签(不包含预发布标识)或手动触发时执行
if: |
(startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-'))
|| github.event_name == 'workflow_dispatch'
# 指定运行环境为最新版 Ubuntu
runs-on: ubuntu-latest
# 环境配置
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# 步骤定义
steps:
# 检出代码
- name: Checkout
uses: actions/checkout@v6
# 按 GitHub Pages 官方流程初始化部署元数据。
- name: Configure GitHub Pages
uses: actions/configure-pages@v5
# 安装 Bun 运行时
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
# 安装项目依赖
- name: Install Dependencies
working-directory: docs
run: bun install
# 构建 VitePress 文档
- name: Build VitePress
working-directory: docs
run: bun run build
# 生成 LLM 索引文件
- name: Make docs LLM ready
uses: demodrive-ai/llms-txt-action@v1
with:
docs_dir: docs/.vitepress/dist
sitemap_path: sitemap.xml
skip_llms_txt: 'false'
skip_llms_full_txt: 'false'
skip_md_files: 'false'
# 在上传前校验 LLM 索引产物,避免部署出“步骤成功但文件缺失”的 Pages 站点。
- name: Verify LLM artifacts
run: |
test -f docs/.vitepress/dist/sitemap.xml
test -f docs/.vitepress/dist/llms.txt
test -f docs/.vitepress/dist/llms-full.txt
md_count="$(find docs/.vitepress/dist -type f -name '*.md' | wc -l)"
if [ "$md_count" -eq 0 ]; then
echo "Expected llms-txt-action to generate page-level markdown files, but none were found."
exit 1
fi
echo "Generated $md_count markdown files for LLM ingestion."
# 上传构建产物作为 Pages 部署工件
- name: Upload Pages Artifact
uses: actions/upload-pages-artifact@v4
with:
path: docs/.vitepress/dist
# 将文档部署到 GitHub Pages
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5