Skip to content

feat: 改进 Tailwind CSS v5 开发体验 #404

feat: 改进 Tailwind CSS v5 开发体验

feat: 改进 Tailwind CSS v5 开发体验 #404

name: Website SEO Quality
on:
pull_request:
push:
branches:
- main
paths:
- .github/workflows/website-seo-quality.yml
- 'website/**'
workflow_dispatch:
permissions:
contents: read
jobs:
detect-website-changes:
name: Detect website changes
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
website_changed: ${{ steps.changes.outputs.website_changed }}
steps:
- name: Check out code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Detect website changes
id: changes
env:
EVENT_NAME: ${{ github.event_name }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
run: |
if [ "$EVENT_NAME" != "pull_request" ]; then
echo "website_changed=true" >> "$GITHUB_OUTPUT"
exit 0
fi
if git diff --quiet "$BASE_SHA" "$HEAD_SHA" -- website/; then
echo "website_changed=false" >> "$GITHUB_OUTPUT"
else
echo "website_changed=true" >> "$GITHUB_OUTPUT"
fi
seo-quality:
name: SEO Quality Gate
needs: detect-website-changes
if: always()
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Require change detection
if: needs.detect-website-changes.result != 'success'
run: |
echo "::error::website change detection failed."
exit 1
- name: Skip when website is unchanged
if: needs.detect-website-changes.outputs.website_changed != 'true'
run: echo "No website changes detected; SEO checks are not required for this change."
- name: Check out code
if: needs.detect-website-changes.outputs.website_changed == 'true'
uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
if: needs.detect-website-changes.outputs.website_changed == 'true'
- name: Setup Node.js environment
if: needs.detect-website-changes.outputs.website_changed == 'true'
uses: actions/setup-node@v6
with:
node-version: 22
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- name: Install dependencies
if: needs.detect-website-changes.outputs.website_changed == 'true'
run: pnpm install --frozen-lockfile
- name: Docs audience gate (website)
if: needs.detect-website-changes.outputs.website_changed == 'true'
run: pnpm --filter @weapp-tailwindcss/website check:docs-audience
- name: few_keywords Gate (website)
if: needs.detect-website-changes.outputs.website_changed == 'true'
run: pnpm --filter @weapp-tailwindcss/website seo:few-keywords
- name: SEO Quality Gate (website)
if: needs.detect-website-changes.outputs.website_changed == 'true'
run: pnpm --filter @weapp-tailwindcss/website seo:quality:strict
- name: SEO Status Note
if: always()
run: |
{
echo "## Website SEO Quality"
echo "- 本工作流独立执行 website SEO 严格门禁。"
echo "- website 变更先执行 \`seo:few-keywords\`,提前拦截 keywords 数量不足。"
echo "- 当前执行命令:\`pnpm --filter @weapp-tailwindcss/website seo:quality:strict\`。"
echo "- 触发条件:PR、主分支推送命中 website 目录变更,或手动触发。"
} >> "$GITHUB_STEP_SUMMARY"