ci: enforce relative internal doc links + pre-commit hint #5452
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: Build, format MDX and Lint | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| jobs: | |
| complete: | |
| if: always() | |
| needs: [ mdx-format, build ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') | |
| run: exit 1 | |
| mdx-format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout App Repo | |
| uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24' | |
| cache: 'pnpm' | |
| cache-dependency-path: '**/pnpm-lock.yaml' | |
| - name: Enable Corepack | |
| run: corepack enable | |
| - name: Install App Dependencies | |
| run: pnpm install --prefer-offline --frozen-lockfile | |
| - name: Check MDX | |
| run: git update-index -g && pnpm ci:mdx | |
| - name: Show Diff if Prettier Fails | |
| if: ${{ failure() }} | |
| run: pnpm diff:mdx && echo "::error::Prettier static analysis failed" | |
| - name: No absolute internal /docs links | |
| run: | | |
| # Internal doc links must be relative (../path/file.mdx), not absolute | |
| # /docs/... routes. Relative links are validated at build time by | |
| # onBrokenMarkdownLinks; absolute route links are not. | |
| # CONTRIBUTING.md is excluded: it is not part of the docs build and | |
| # its /docs link is an intentional illustrative example. | |
| if grep -rn --include='*.md' --include='*.mdx' --exclude='CONTRIBUTING.md' '](/docs' docs/; then | |
| echo "::error::Found absolute /docs link(s) above. Use a relative ../path/file.mdx link with the .mdx extension instead — see docs/platforms/anchor-platform/CONTRIBUTING.md." | |
| exit 1 | |
| fi | |
| build: | |
| uses: ./.github/workflows/build.yml | |