Skip to content

ci: add GitHub Actions test workflow - #21

Merged
musicsms merged 1 commit into
masterfrom
add-ci-pipeline
Sep 10, 2026
Merged

musicsms merged 1 commit into
masterfrom
add-ci-pipeline

Conversation

@musicsms

Copy link
Copy Markdown
Owner

Summary

  • Repo has had no CI since the migration started (20 merged PRs so far) — every merge relied on a contributor manually running pytest before merging. Adds .github/workflows/tests.yml to run the suite automatically on every push to master and every PR targeting master (Python 3.11, pip install -r requirements.txt -r requirements-dev.txt then pytest tests/ -v).
  • requirements.txt never declared pytest, so a fresh clone following the README's install steps couldn't run tests/ at all. Adds requirements-dev.txt (test-only deps, currently just pytest) rather than folding it into requirements.txt, so production installs stay lean.
  • README: adds a Tests badge next to the existing badges, and a "Running Tests" subsection under Installation documenting the new commands.

Test plan

  • Verified end-to-end in a scratch venv outside the repo (not the project's own .venv): fresh pip install -r requirements.txt -r requirements-dev.txt followed by pytest tests/ -v → 228/228 passing, matching exactly what the new workflow does
  • Confirmed via AST inspection that no hexstrike/tools/*.py module imports angr/pwntools at module level (those only appear inside generated-script string templates), so installing the full requirements.txt in CI, while safest against drift, isn't masking an import that would otherwise be optional
  • Workflow YAML validated by hand (standard actions/checkout + actions/setup-python + pip install + pytest steps); will confirm green run once this PR is open on GitHub

🤖 Generated with Claude Code

https://claude.ai/code/session_01UCXzPVYGQRPh8iwyajTsRt

@musicsms
musicsms merged commit 30d0dac into master Sep 10, 2026
1 check failed
The repo had no CI: every merge (20 PRs so far, including the full
monolith->hexstrike/ package migration) relied on contributors
remembering to run pytest by hand before merging, with no automated
gate on push/PR. requirements.txt also didn't declare pytest, so a
fresh clone following the README's install instructions couldn't run
tests/ at all.

Adds:
- .github/workflows/tests.yml: runs on push to master and on PRs
  against master, Python 3.11, `pip install -r requirements.txt -r
  requirements-dev.txt` then `pytest tests/ -v`.
- requirements-dev.txt: test-only deps (currently just pytest),
  installed alongside requirements.txt rather than folded into it, so
  production installs don't pull in test tooling.
- README: adds a Tests badge and a "Running Tests" section documenting
  the new install/run commands.

Verified end-to-end in a scratch venv outside the repo: fresh `pip
install -r requirements.txt -r requirements-dev.txt` followed by
`pytest tests/ -v` reaches 228/228 passing, matching what the new
workflow will do on GitHub.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UCXzPVYGQRPh8iwyajTsRt
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