Skip to content

feat: 移除旧的文档差异生成脚本并引入新的实现,更新工作流以支持新的文档差异评论功能 #13

feat: 移除旧的文档差异生成脚本并引入新的实现,更新工作流以支持新的文档差异评论功能

feat: 移除旧的文档差异生成脚本并引入新的实现,更新工作流以支持新的文档差异评论功能 #13

Workflow file for this run

# PR 构建:在 tdesign-flutter 中用本 PR tools 重生成文档,并产出预览站 artifact(发布与评论见 preview-publish.yml)

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: 34, 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.
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