Skip to content

社区交流群改为2群 #16

社区交流群改为2群

社区交流群改为2群 #16

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
validate:
name: Validate agent files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Count agents
run: |
TOTAL=$(find . -path './.github' -prune -o -path './scripts' -prune -o -path './examples' -prune -o -path './integrations' -prune -o -name '*.md' -print | grep -c '/')
echo "Total agent files: $TOTAL"
- name: Check frontmatter format
run: |
ERRORS=0
while IFS= read -r file; do
# Skip non-agent files
case "$file" in
./README*|./CONTRIBUTING*|./UPSTREAM*|./AGENT-LIST*|./CATALOG*|./CODE_OF_CONDUCT*|./.github/*|./scripts/*|./examples/*|./integrations/*|./docs/*|./strategy/*) continue ;;
esac
# Check frontmatter exists
if ! head -1 "$file" | grep -q '^---'; then
echo "::error file=$file::Missing frontmatter (no opening ---)"
ERRORS=$((ERRORS + 1))
continue
fi
# Check required fields
FRONTMATTER=$(sed -n '/^---$/,/^---$/p' "$file" | head -20)
for field in name description; do
if ! echo "$FRONTMATTER" | grep -q "^${field}:"; then
echo "::warning file=$file::Missing recommended field: $field"
fi
done
done < <(find . -path './.github' -prune -o -path './scripts' -prune -o -path './examples' -prune -o -path './integrations' -prune -o -path './node_modules' -prune -o -name '*.md' -print | grep '/')
if [ $ERRORS -gt 0 ]; then
echo "::error::$ERRORS file(s) have frontmatter errors"
exit 1
fi
echo "All agent files validated successfully"
- name: Check for broken internal links
run: |
ERRORS=0
# Check README references to agent files
while read -r link; do
if [ ! -f "$link" ]; then
echo "::error file=README.md::Broken link: $link"
ERRORS=$((ERRORS + 1))
fi
done < <(grep -oP '\[.*?\]\(((?!http)[^)]+\.md)\)' README.md | grep -oP '\(([^)]+)\)' | tr -d '()')
exit $ERRORS