feat: 改进 Tailwind CSS v5 开发体验 #404
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: 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" |