# =============================================================================
# Deploy: GitHub Pages — 文档站部署到 gh-pages 分支
#
# 触发时机: push 到 main 分支时自动运行
# 功能: 构建项目 → 打包 dist + examples → 部署到 gh-pages 分支
# 用户可通过 https://tencent.github.io/cherry-markdown/ 访问在线示例
# =============================================================================
name: 'Deploy: GitHub Pages'
on:
push:
branches:
- main
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
deploy-github-pages:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: yarn
- name: Install dependencies
run: yarn install
- name: Build project
run: yarn build
- name: Prepare publish directory
run: |
mkdir -p gh-pages-out
cp --parents -r packages/cherry-markdown/dist gh-pages-out/
cp --parents examples/*.html gh-pages-out/
cp --parents -r examples/assets gh-pages-out/
# 可视化配置生成器(目录可能尚未存在,条件复制)
[ -d examples/config_helper ] && cp --parents -r examples/config_helper gh-pages-out/ || true
# 修复 HTML 中的相对路径
find gh-pages-out/examples -type f -name "*.html" -exec sed -i 's|\.\./packages|./packages|g' {} +
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./gh-pages-out
publish_branch: gh-pages