64 lines
1.5 KiB
YAML
64 lines
1.5 KiB
YAML
name: Spec Validation
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'specs/**'
|
|
- 'diagrams/**'
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
validate-markdown:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# 1. ตรวจสอบ Markdown syntax
|
|
- name: Lint Markdown
|
|
uses: avto-dev/markdown-lint@v1
|
|
with:
|
|
config: '.markdownlint.json'
|
|
args: 'specs/**/*.md'
|
|
|
|
# 2. ตรวจสอบ internal links
|
|
- name: Check Links
|
|
uses: gaurav-nelson/github-action-markdown-link-check@v1
|
|
with:
|
|
use-quiet-mode: 'yes'
|
|
folder-path: 'specs'
|
|
|
|
# 3. ตรวจสอบ required metadata
|
|
- name: Validate Metadata
|
|
run: |
|
|
python scripts/validate-spec-metadata.py
|
|
|
|
# 4. ตรวจสอบ version consistency
|
|
- name: Check Version Numbers
|
|
run: |
|
|
python scripts/check-versions.py
|
|
|
|
validate-diagrams:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# ตรวจสอบว่า Mermaid diagrams render ได้
|
|
- name: Validate Mermaid
|
|
uses: neenjaw/compile-mermaid-markdown-action@v1
|
|
with:
|
|
files: 'diagrams/**/*.mmd'
|
|
|
|
check-todos:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# แจ้งเตือนถ้ามี TODO/FIXME
|
|
- name: Check for TODOs
|
|
run: |
|
|
if grep -r "TODO\|FIXME" specs/; then
|
|
echo "⚠️ Found TODO/FIXME in specs!"
|
|
exit 1
|
|
fi
|