validate.yml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. name: Validate extensions
  2. on:
  3. push:
  4. branches: [main]
  5. pull_request:
  6. jobs:
  7. validate:
  8. runs-on: ubuntu-latest
  9. steps:
  10. - name: Checkout
  11. uses: actions/checkout@v4
  12. - name: Install jq + ripgrep + gitleaks (security suites need them)
  13. run: |
  14. sudo apt-get update && sudo apt-get install -y jq ripgrep
  15. # gitleaks: fetch the release binary (not in apt) so push-gate's
  16. # scan-secrets.sh and its suite run for real instead of skipping.
  17. GL_VER=8.21.2
  18. curl -sSL "https://github.com/gitleaks/gitleaks/releases/download/v${GL_VER}/gitleaks_${GL_VER}_linux_x64.tar.gz" \
  19. | sudo tar -xz -C /usr/local/bin gitleaks
  20. gitleaks version && rg --version | head -1
  21. - name: Install Claude Code (for authoritative plugin validation)
  22. run: npm install -g @anthropic-ai/claude-code
  23. - name: Validate plugin + marketplace manifests
  24. run: |
  25. claude plugin validate .
  26. tmp="$(mktemp -d)"
  27. mkdir -p "$tmp/.claude-plugin"
  28. cp .claude-plugin/plugin.json "$tmp/.claude-plugin/plugin.json"
  29. claude plugin validate "$tmp"
  30. - name: Validate extensions (frontmatter, naming, structure)
  31. run: bash tests/validate.sh
  32. - name: Doc-drift gate (docs must match disk)
  33. run: bash tests/doc-drift.sh
  34. - name: Executable-bit gate (tracked scripts must be executable)
  35. run: bash tests/check-exec-bits.sh
  36. - name: Run skill behavioural test suites
  37. run: bash tests/run-skill-tests.sh
  38. - name: Offline resource checks (verifier scripts)
  39. run: bash tests/check-resources.sh