feat: 移除旧的文档差异生成脚本并引入新的实现,更新工作流以支持新的文档差异评论功能 #13
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # PR 构建:在 tdesign-flutter 中用本 PR tools 重生成文档,并产出预览站 artifact(发布与评论见 preview-publish.yml) | ||
|
Check failure on line 1 in .github/workflows/pull-request.yml
|
||
| name: PR 文档预览构建 | ||
| on: | ||
| pull_request: | ||
| branches: [develop, main] | ||
| types: [opened, synchronize, reopened] | ||
| permissions: | ||
| contents: read | ||
| jobs: | ||
| analyze: | ||
| name: 静态分析 tools | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| steps: | ||
| - name: 检出 tdesign-flutter-tools | ||
| uses: actions/checkout@v4 | ||
| - name: 安装 Flutter 3.32 | ||
| uses: subosito/flutter-action@v2 | ||
| with: | ||
| flutter-version: "3.32.0" | ||
| channel: stable | ||
| cache: true | ||
| - name: 依赖解析 | ||
| run: flutter pub get | ||
| - name: dart analyze | ||
| run: dart analyze --fatal-infos | ||
| 构建文档与预览站: | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 45 | ||
| steps: | ||
| - name: 检出 tdesign-flutter-tools(本 PR) | ||
| uses: actions/checkout@v4 | ||
| - name: 克隆 tdesign-flutter(develop) | ||
| run: git clone --depth 1 --branch develop https://github.com/Tencent/tdesign-flutter.git | ||
| - 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 || { | ||
| echo "⚠ Widget test completed with warnings (this is expected)" | ||
| } | ||
| - name: 构建 tdesign-site 静态站 | ||
| working-directory: tdesign-flutter/tdesign-site | ||
| run: | | ||
| pnpm install --frozen-lockfile | ||
| npm run site | ||
| - name: 组装 Surge 预览目录 | ||
| working-directory: tdesign-flutter | ||
| run: | | ||
| mkdir -p ../tdesign-flutter-web/flutter/example/ | ||
| cp -r tdesign-site/_site/* ../tdesign-flutter-web/ || echo "tdesign-site/_site/ not found or empty" | ||
| rm -rf ../tdesign-flutter-web/assets || true | ||
| for f in "$GITHUB_WORKSPACE/tdesign-flutter-web/index.html"; do | ||
| if [ -f "$f" ]; then | ||
| if ! grep -q '<base href="/">' "$f"; then | ||
| sed -i 's|<meta http-equiv="X-UA-Compatible" content="ie=edge">|<meta http-equiv="X-UA-Compatible" content="ie=edge">\n <base href="/">|' "$f" || true | ||
| fi | ||
| sed -i "s|src=\"/flutter/|src=\"flutter/|g; s|href=\"/flutter/|href=\"flutter/|g; s|src='/flutter/|src='flutter/|g; s|href='/flutter/|href='flutter/|g" "$f" || true | ||
| fi | ||
| done | ||
| cp -v tdesign-site/_site/index.html ../tdesign-flutter-web/404.html || true | ||
| cp -v tdesign-site/_site/index.html ../tdesign-flutter-web/200.html || true | ||
| cp -r tdesign-site/_site/assets ../tdesign-flutter-web/flutter/assets || true | ||
| - name: 构建 Flutter Web 示例 | ||
| working-directory: tdesign-flutter/tdesign-component/example | ||
| run: flutter build web -t ./lib/main.dart --base-href /flutter/example/ --source-maps | ||
| - name: 拷贝 Web 示例到预览目录 | ||
| working-directory: tdesign-flutter | ||
| run: cp -r tdesign-component/example/build/web/* ../tdesign-flutter-web/flutter/example/ || true | ||
| - name: 上传 Surge 预览站产物 | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: tdesign-flutter-web | ||
| path: tdesign-flutter-web | ||
| retention-days: 5 | ||
| - name: 生成文档 diff 评论内容(构建成功后) | ||
| working-directory: tdesign-flutter | ||
| run: | | ||
| /tmp/api_tool doc-diff \ | ||
| --out ${{ github.workspace }}/doc-diff-comment.md \ | ||
| --repo . | ||
| - name: 写入 PR 元数据 | ||
| run: echo "${{ github.event.number }}" > pr-number.txt | ||
| - name: 上传 PR 元数据(编号 + 文档 diff) | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: pr-metadata | ||
| path: | | ||
| pr-number.txt | ||
| doc-diff-comment.md | ||
| retention-days: 5 | ||