Files
moko-platform/templates/workflows/validate-documentation-project.yml
T

105 lines
3.0 KiB
YAML

name: Validate Documentation Project
on:
pull_request:
branches: [main, develop]
push:
branches: [main, develop]
workflow_dispatch:
jobs:
validate:
name: Validate Documentation Project
runs-on: ubuntu-latest
steps:
- name: Checkout project
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Checkout MokoStandards
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
repository: mokoshalb/MokoStandards
path: .mokostandards
ref: main
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: mbstring, json, fileinfo
- name: Install MokoStandards dependencies
working-directory: .mokostandards
run: composer install --prefer-dist --no-progress
- name: Run Documentation validation
id: validate
run: |
php .mokostandards/api/plugin_validate.php \
--project-path . \
--project-type documentation \
--json > validation-results.json
cat validation-results.json
if jq -e '.valid == false' validation-results.json > /dev/null; then
echo "::error::Project validation failed"
exit 1
fi
- name: Run health check
id: health
run: |
php .mokostandards/api/plugin_health_check.php \
--project-path . \
--project-type documentation \
--json > health-results.json
cat health-results.json
- name: Collect metrics
id: metrics
run: |
php .mokostandards/api/plugin_metrics.php \
--project-path . \
--project-type documentation \
--json > metrics-results.json
cat metrics-results.json
- name: Check release readiness
id: readiness
run: |
php .mokostandards/api/plugin_readiness.php \
--project-path . \
--project-type documentation \
--json > readiness-results.json
cat readiness-results.json
- name: Check for broken links
continue-on-error: true
run: |
npm install -g markdown-link-check
find . -name "*.md" -not -path "./node_modules/*" -not -path "./.mokostandards/*" \
-exec markdown-link-check {} \; || true
- name: Lint Markdown files
continue-on-error: true
run: |
npm install -g markdownlint-cli
markdownlint '**/*.md' --ignore node_modules --ignore .mokostandards || true
- name: Upload validation artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: documentation-validation-results
path: |
validation-results.json
health-results.json
metrics-results.json
readiness-results.json
retention-days: 30