ci: 替换 maintain-one-comment 为内部 action #12
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
| name: PR 文档预览构建 | ||
|
Check failure on line 1 in .github/workflows/pull-request.yml
|
||
| 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 | ||