| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- name: CI
- on:
- push:
- branches: [main, master]
- pull_request:
- branches: [main, master]
- jobs:
- lint-markdown:
- name: Lint Markdown
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Setup Node.js
- uses: actions/setup-node@v4
- with:
- node-version: '20'
- - name: Install markdownlint-cli
- run: npm install -g markdownlint-cli
- - name: Run markdownlint
- run: markdownlint '**/*.md' --ignore node_modules --ignore libs/external || true
- check-links:
- name: Check Links
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Link Checker
- uses: lycheeverse/lychee-action@v1
- with:
- args: --verbose --no-progress './**/*.md' --exclude-path libs/external
- fail: false
- validate-structure:
- name: Validate Project Structure
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Check required files
- run: |
- echo "Checking required files..."
- files=("README.md" "LICENSE" "CONTRIBUTING.md" "CODE_OF_CONDUCT.md" "AGENTS.md" "CLAUDE.md")
- for file in "${files[@]}"; do
- if [ -f "$file" ]; then
- echo "✓ $file exists"
- else
- echo "✗ $file missing"
- fi
- done
- - name: Check i18n structure
- run: |
- echo "Checking i18n directories..."
- for lang in zh en; do
- if [ -d "i18n/$lang" ]; then
- echo "✓ i18n/$lang exists"
- else
- echo "✗ i18n/$lang missing"
- fi
- done
|