ci: add fresh-clone smoke test for setup.sh and start.sh#609
Conversation
utksh1
left a comment
There was a problem hiding this comment.
This PR currently includes the same checksum workflow/script from #608, and that inherited change is still not valid.
python scripts/refresh_plugin_checksums.py --dry-run only computes and prints checksums. It does not compare against a committed manifest and does not fail when plugin metadata/parser files drift, so the checksum Action would pass while failing to enforce the intended policy. Please fix or remove the checksum workflow changes from this PR, and keep the fresh-clone smoke test as an independently reviewable change.
|
@utksh1 Removed plugin-checksum.yml and refresh_plugin_checksums.py from this branch — the smoke test is now the only change here, independently reviewable. |
utksh1
left a comment
There was a problem hiding this comment.
Re-reviewed the update. This remains blocked by red required checks and still carries/depends on the checksum workflow work from #608. Please split the fresh-clone smoke test from checksum drift validation, rebase on latest main, and get the smoke workflow green independently.
Closes utksh1#583 - Runs setup.sh in a clean Ubuntu environment - Verifies venv, backend deps, frontend node_modules, dirs, and .env - Starts services via start.sh and polls :8000 and :5173 - Smoke-checks /openapi.json and /docs on the backend - Uploads logs as artifacts on failure - Installs libcairo2-dev for pycairo build
8667e06 to
decbfc1
Compare
|
@utksh1 Rebased and squashed — the branch now contains a single clean commit with only the smoke-test workflow. No checksum history remains. All checks are green. |
utksh1
left a comment
There was a problem hiding this comment.
Re-reviewed after branch refresh. The PR is now scoped to the fresh-clone setup/start smoke workflow, the new smoke job passes, and the standard required checks are green. Approving.
Closes #583
Summary
Adds a GitHub Actions workflow that verifies the contributor onboarding
path end-to-end: fresh clone → ./setup.sh → ./start.sh → services respond.
What the workflow does
./setup.shon a clean Ubuntu runner (Python 3.11, Node 20)venv/with fastapi, uvicorn, httpx installedfrontend/node_modules/.bin/vitepresentdata/,data/raw,data/reports,logs/,wordlists/directories.envfile with correct default config./start.shhttp://127.0.0.1:8000andhttp://127.0.0.1:5173until ready/openapi.jsonand/docson the backendlogs/as an artifact on failure for easy debuggingEnvironment assumptions
actions/setup-python)actions/setup-node)lsof,libcairo2-dev,pkg-config,python3-dev) installed before setup —lsofis required bystart.shpre-flight, cairo headers are required to buildpycairofrom sourcesetup.shTrigger conditions
Only runs when
setup.sh,start.sh,backend/**,frontend/**,or requirements files are changed — not on every commit.