Skip to content

Add CI: shellcheck, Python syntax, manifest and compose validation - #19

Open
divyanshus2404 wants to merge 1 commit into
PlumoAI:mainfrom
divyanshus2404:feature/ci
Open

divyanshus2404 wants to merge 1 commit into
PlumoAI:mainfrom
divyanshus2404:feature/ci

Conversation

@divyanshus2404

Copy link
Copy Markdown
Member

What this does

The repository has no continuous integration. Every PR (including the agent integrations already open) is checked only by manual review, if at all. This adds a lightweight GitHub Actions workflow that runs on each pull request and on pushes to main.

Four jobs, each verified green against the current tree:

Job Checks Guards against
shell shellcheck -S error over every tracked *.sh / *.command broken installer / entrypoint scripts
python py_compile over all tracked *.py (blocking) + ruff (informational) an agent or node that will not import
manifests every ai-agents/*/plugin.json and service-providers/*/provider.json parses and has its required fields malformed plugins landing unnoticed
compose docker-compose*.yml is well-formed YAML, tolerating Compose's !override / !reset tags a broken compose file

Verified locally against the current tree

  • shellcheck -S error: 6 scripts, 0 errors
  • py_compile: 137 Python files, 0 syntax errors
  • manifest validator: 47 manifests, 0 errors, 2 warnings (below)
  • compose validator: 3 files, 0 errors

So the workflow is green on merge, not red-on-arrival.

Two existing issues surfaced (as warnings, non-blocking)

The manifest validator flags these without failing CI, so they are visible but do not block:

  • ai-agents/upwork/plugin.json declares no entrypoint
  • ai-agents/apollo.io/plugin.json has plugin_id: "apollo" — directory/id mismatch

Notes

  • shellcheck runs at -S error because the existing scripts are clean at that severity but carry style-level warnings (49 at default). The threshold can be tightened to warning once those are cleaned up.
  • ruff is informational (continue-on-error) so existing style does not block, while still surfacing suggestions.
  • The validators live in .github/scripts/ and can be run locally: python3 .github/scripts/validate_plugins.py.

This is intentionally a fast, dependency-light first layer. A natural next step is a stack smoke-test (docker compose up, assert the app answers) — that would catch runtime regressions the static checks cannot.

🤖 Generated with Claude Code

The repository has no continuous integration; contributions are currently
checked only by manual review, if at all. This adds a lightweight GitHub
Actions workflow that runs on every pull request and on pushes to main.

Four jobs, each green on the current tree:

- shell: shellcheck (-S error) over every tracked *.sh / *.command
- python: py_compile over all tracked *.py (blocking), plus ruff (informational)
- manifests: validates every ai-agents/*/plugin.json and
  service-providers/*/provider.json parses and carries its required fields
- compose: validates docker-compose*.yml is well-formed YAML, tolerating
  Compose's !override / !reset tags

The manifest validator also surfaces two existing issues as non-blocking
warnings: ai-agents/upwork has no entrypoint, and ai-agents/apollo.io has
plugin_id "apollo" (directory/id mismatch). These are flagged, not failed,
so CI stays green while the inconsistencies are visible.

shellcheck runs at -S error because the existing scripts are clean at that
severity but have style-level warnings; the threshold can be tightened once
those are addressed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant