This directory contains the GitHub Actions workflows for the AsyncMiele project.
This workflow runs automatically on:
- All pushes to
main,master, anddevelopbranches - All pull requests to
main,master, anddevelopbranches
-
test: Runs the test suite on multiple Python versions (3.11, 3.12)
- Uses
uvfor fast dependency management - Warnings are treated as non-fatal (don't fail the build)
- Test results are uploaded as artifacts
- Uses
-
test-coverage: Generates test coverage reports using Python 3.11
- Creates HTML and XML coverage reports
- Uploads coverage reports as artifacts
-
lint: Code quality checks (optional - won't fail the build)
- Black code formatting check
- isort import sorting check
- flake8 linting
- All linting steps use
continue-on-error: trueto not fail the build
- Warning Handling: Warnings are suppressed using
PYTHONWARNINGS=ignoreto ensure they don't clutter CI output or cause build failures - Test Configuration: Uses
pytest.inifor consistent test behavior - Dependency Caching: uv automatically caches dependencies for faster builds
- Artifact Retention: Test results kept for 7 days, coverage reports for 30 days
To run the same tests locally that run in CI:
# Install dependencies
uv sync --extra dev
# Run tests (same as CI)
PYTHONWARNINGS=ignore uv run pytest tests/ -v --tb=short
# Run with coverage
PYTHONWARNINGS=ignore uv run pytest tests/ --cov=asyncmiele --cov-report=html
# Run linting (optional)
uv run black --check asyncmiele/ tests/
uv run isort --check-only asyncmiele/ tests/
uv run flake8 asyncmiele/ tests/test.yml: Main CI/CD workflowpytest.ini: Pytest configuration (in project root)- This README: Documentation