Skip to content

Add documentation code validation system #1

Add documentation code validation system

Add documentation code validation system #1

Workflow file for this run

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