name: Validate documentation on: pull_request: paths: - "apps/docs/**" - "apps/nextjs/src/app/api/**" - "packages/definitions/src/**" - "packages/widgets/src/**" - "packages/custom-widgets/src/**" - "packages/ui/src/**" - "packages/workshop/src/**" - "packages/api/src/**" - "packages/auth/src/**" - "packages/integrations/src/**" - "tools/motion-reel/three/**" - "tooling/**" - "bun.lock" - "package.json" - "bunfig.toml" - "turbo.json" - ".github/workflows/deployment-docs.yml" - ".github/workflows/validate-docs.yml" permissions: contents: read concurrency: group: validate-docs-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: docs: name: Build and validate docs runs-on: ubuntu-latest timeout-minutes: 15 env: SKIP_ENV_VALIDATION: true TURBO_API: ${{ secrets.TURBO_API }} TURBO_TEAM: ${{ secrets.TURBO_TEAM }} TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_REMOTE_CACHE_SIGNATURE_KEY: ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }} steps: - uses: actions/checkout@v7 if: "!env.ACT" with: persist-credentials: false - name: Setup uses: ./tooling/github/setup with: next-cache: "docs" turbo-cache: "true" - name: Validate the published API schema against the application run: bun run check:openapi - name: Validate browser access and API schema rendering run: bun x vitest run 'apps/nextjs/src/app/api/[...trpc]/route.spec.ts' apps/docs/src/lib/openapi.spec.ts - name: Build docs run: bun run turbo run build --filter=@homarr/docs env: CI: "true" - name: Validate exported links, search, and metadata run: | bun run --filter @homarr/docs validate:links bun run --filter @homarr/docs verify:search bun run --filter @homarr/docs verify:seo