Skip to content

RFC: CI/CD pipeline and automated testing #9

@HaraldeRoessler

Description

@HaraldeRoessler

Background

The project currently has no automated testing or deployment pipeline. Tests exist (test_sandbox.py, test_protocol_compliance.py, tests/test_nonce_manager.py) but run only manually. Docker support was recently added (#1) which makes containerized testing feasible.

Proposal

Phase 1: GitHub Actions CI (minimal effort)

Run on every PR and push to main:

  • Python dependency installation
  • Unit tests (pytest)
  • Docker image build verification

This catches broken imports, missing dependencies, and syntax errors before merge. Runs on GitHub's free tier — no infrastructure needed.

Phase 2: Integration testing (optional, needs infra)

Benefits

  • Contributors can verify their PRs pass tests before requesting review
  • Maintainer gets confidence that merges don't break existing functionality
  • Foundation for automated deployment later

Open questions

  • Should the CI run on ubuntu-latest or a custom runner?
  • Which Python version(s) to test against? (codebase uses 3.12+ features like f-string nesting)
  • Should Docker build be a required check or advisory?
  • Any secrets needed for integration tests (test DB, test API keys)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions