Skip to content

ci: 替换 maintain-one-comment 为内部 action #12

ci: 替换 maintain-one-comment 为内部 action

ci: 替换 maintain-one-comment 为内部 action #12

Workflow file for this run

name: PR 文档预览构建

Check failure on line 1 in .github/workflows/pull-request.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/pull-request.yml

Invalid workflow file

(Line: 12, Col: 3): The identifier '构建文档与预览站' is invalid. IDs may only contain alphanumeric characters, '_', and '-'. IDs must start with a letter or '_' and must be less than 100 characters.
on:
pull_request:
branches: [develop, main]
types: [opened, synchronize, reopened]
env:
PREVIEW_URL: https://preview-pr-${{ github.event.number }}-${{ github.event.repository.name }}.surge.sh
jobs:
构建文档与预览站:
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: 检出 tdesign-flutter-tools(本 PR)
uses: actions/checkout@v4
- name: 保存 PR 编号(供失败时通知)
run: echo "${{ github.event.number }}" > pr-number.txt
- name: 上传 PR 编号
uses: actions/upload-artifact@v4
with:
name: pr-number
path: pr-number.txt
retention-days: 5
- name: 克隆 tdesign-flutter(develop)
run: git clone --depth 1 --branch develop https://github.com/Tencent/tdesign-flutter.git
- name: 快照 develop 已提交文档(diff 基准)
run: |
cp -r tdesign-flutter/tdesign-component/example/assets/api /tmp/api-baseline
cp -r tdesign-flutter/tdesign-site/src /tmp/site-src-baseline
- name: 覆盖依赖为本 PR 的 tdesign_flutter_tools
working-directory: tdesign-flutter/tdesign-component
env:
PR_REPO: ${{ github.event.pull_request.head.repo.full_name }}
PR_SHA: ${{ github.event.pull_request.head.sha }}
run: |
cat > pubspec_overrides.yaml <<EOF
dependency_overrides:
tdesign_flutter_tools:
git:
url: https://github.com/${PR_REPO}.git
ref: ${PR_SHA}
EOF
- name: 安装 pnpm
uses: pnpm/action-setup@v2
with:
version: 9
- name: 安装 Node.js 20
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "pnpm"
cache-dependency-path: "tdesign-flutter/tdesign-site/pnpm-lock.yaml"
- name: 安装 Flutter 3.32
uses: TDesignOteam/workflows/actions/setup-flutter@main
with:
flutter-version: 3.32.0
channel: stable
cache: true
aop-registry: true
aop-project-path: ./tdesign-flutter/tdesign-component/example
- name: Flutter 依赖解析(tdesign-component)
working-directory: tdesign-flutter/tdesign-component
run: flutter pub get
- name: 用本 PR tools 全量重生成 API 文档
working-directory: tdesign-flutter/tdesign-component
run: |
dart compile exe ${{ github.workspace }}/bin/main.dart -o /tmp/api_tool
/tmp/api_tool update
- name: 运行 widget_test 生成站点 README
working-directory: tdesign-flutter/tdesign-component/example
run: flutter test test/widget_test.dart --reporter expanded
- name: 生成文档 diff 评论内容
run: |
dart run .github/scripts/build_doc_diff_comment.dart \
--out doc-diff-comment.md \
--preview-url "${{ env.PREVIEW_URL }}" \
--compare /tmp/api-baseline tdesign-flutter/tdesign-component/example/assets/api "API 文档 (assets/api)" "*_api.md" \
--compare /tmp/site-src-baseline tdesign-flutter/tdesign-site/src "站点文档 (tdesign-site/src)" "README.md"
- name: 上传文档 diff 与 PR 元数据
uses: actions/upload-artifact@v4
with:
name: preview-metadata
path: |
pr-number.txt
doc-diff-comment.md
retention-days: 5
- name: 构建 tdesign-site 静态站
working-directory: tdesign-flutter/tdesign-site
run: |
pnpm install --frozen-lockfile
npm run site
- name: 构建 Flutter Web 示例
working-directory: tdesign-flutter/tdesign-component/example
run: flutter build web -t ./lib/main.dart --base-href /flutter/example/
- name: 组装 Surge 预览目录
run: |
mkdir -p tdesign-flutter-web/flutter/example
cp -r tdesign-flutter/tdesign-site/_site/. tdesign-flutter-web/
cp tdesign-flutter/tdesign-site/_site/index.html tdesign-flutter-web/200.html
cp tdesign-flutter/tdesign-site/_site/index.html tdesign-flutter-web/404.html
cp -r tdesign-flutter/tdesign-component/example/build/web/. tdesign-flutter-web/flutter/example/
- name: 上传 Surge 预览站产物
uses: actions/upload-artifact@v4
with:
name: tdesign-flutter-web
path: tdesign-flutter-web
retention-days: 5