Add documentation code validation system #1
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: "Documentation Validation" | |
| on: | |
| pull_request: | |
| paths: | |
| - 'docs/**' | |
| - 'nodejs/src/**' | |
| - 'python/copilot/**' | |
| - 'go/**/*.go' | |
| - 'dotnet/src/**' | |
| - 'scripts/docs-validation/**' | |
| - '.github/workflows/docs-validation.yml' | |
| workflow_dispatch: | |
| merge_group: | |
| permissions: | |
| contents: read | |
| jobs: | |
| extract: | |
| name: "Extract Code Blocks" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: "npm" | |
| cache-dependency-path: "scripts/docs-validation/package-lock.json" | |
| - name: Install extraction dependencies | |
| working-directory: scripts/docs-validation | |
| run: npm ci | |
| - name: Extract code blocks | |
| working-directory: scripts/docs-validation | |
| run: npm run extract | |
| - name: Upload extracted code | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: extracted-code | |
| path: docs/.validation/ | |
| retention-days: 1 | |
| validate-typescript: | |
| name: "Validate TypeScript" | |
| needs: extract | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: "npm" | |
| cache-dependency-path: "nodejs/package-lock.json" | |
| - name: Install SDK dependencies | |
| working-directory: nodejs | |
| run: npm ci --ignore-scripts | |
| - name: Install validation dependencies | |
| working-directory: scripts/docs-validation | |
| run: npm ci | |
| - name: Download extracted code | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: extracted-code | |
| path: docs/.validation/ | |
| - name: Validate TypeScript | |
| working-directory: scripts/docs-validation | |
| run: npm run validate:ts | |
| validate-python: | |
| name: "Validate Python" | |
| needs: extract | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Install SDK dependencies | |
| working-directory: python | |
| run: uv sync | |
| - name: Install mypy | |
| run: pip install mypy | |
| - name: Install validation dependencies | |
| working-directory: scripts/docs-validation | |
| run: npm ci | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Download extracted code | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: extracted-code | |
| path: docs/.validation/ | |
| - name: Validate Python | |
| working-directory: scripts/docs-validation | |
| run: npm run validate:py | |
| validate-go: | |
| name: "Validate Go" | |
| needs: extract | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.23" | |
| cache-dependency-path: "go/go.sum" | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install validation dependencies | |
| working-directory: scripts/docs-validation | |
| run: npm ci | |
| - name: Download extracted code | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: extracted-code | |
| path: docs/.validation/ | |
| - name: Validate Go | |
| working-directory: scripts/docs-validation | |
| run: npm run validate:go | |
| validate-csharp: | |
| name: "Validate C#" | |
| needs: extract | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: "8.0.x" | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install validation dependencies | |
| working-directory: scripts/docs-validation | |
| run: npm ci | |
| - name: Download extracted code | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: extracted-code | |
| path: docs/.validation/ | |
| - name: Restore SDK dependencies | |
| working-directory: dotnet | |
| run: dotnet restore | |
| - name: Validate C# | |
| working-directory: scripts/docs-validation | |
| run: npm run validate:cs |