-
Notifications
You must be signed in to change notification settings - Fork 189
Closed
Labels
enhancementNew feature or requestNew feature or requesttestingimprovement to testingimprovement to testing
Description
Problem
Currently, the CI/CD pipeline has no timeouts configured, which can lead to:
- Tests hanging indefinitely - Some tests (especially interop tests) can hang for hours
- CI resources wasted - Jobs can run for up to 6 hours (GitHub Actions default) before being killed
- Developer experience issues - Long-running CI makes it difficult to get quick feedback
Current Situation
- GitHub Actions: No job-level or step-level timeouts configured
- Tox configuration: No pytest timeouts in tox.ini
- Makefile: No timeouts in
make testormake prcommands - pytest-timeout plugin: Installed but no global timeout configured
Evidence
Recent test runs show FloodSub interop tests timing out after 80+ seconds locally, but in CI these could run for the full 6-hour GitHub Actions timeout.
Proposed Solution
-
Add job timeout in GitHub Actions workflow:
jobs: tox: timeout-minutes: 60 # 1 hour timeout
-
Add pytest timeouts in tox.ini:
commands= core: pytest -n auto --timeout=300 {posargs:tests/core} interop: pytest -n auto --timeout=600 {posargs:tests/interop} demos: pytest -n auto --timeout=300 {posargs:tests/core/examples/test_examples.py}
-
Update Makefile to include timeouts:
test: python -m pytest tests -n auto --timeout=300
Benefits
- Faster feedback - Tests fail quickly instead of hanging
- Resource efficiency - Prevents CI from running for hours
- Better debugging - Clear timeout errors instead of indefinite hangs
- Improved developer experience - Faster CI feedback loop
Related
This issue was discovered while working on PR #939 (flood publishing) where FloodSub interop tests are timing out.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesttestingimprovement to testingimprovement to testing