๐ CI/CDยถ
โAutomation is not about replacing humans, itโs about amplifying human potential.โ โ Unknown
Seedling includes comprehensive CI/CD configuration for automated testing and deployment.
Overviewยถ
The template provides:
GitHub Actions: Automated workflows
Testing: Automated test execution
Quality checks: Automated code quality validation
Deployment: Automated deployment to PyPI
Workflowsยถ
CI Workflowยถ
The main CI workflow runs on every push and pull request and includes:
Multi-Python Testing: Tests against Python 3.11 and 3.12
Dependency Installation: Uses
uv sync
for fast dependency managementTest Execution: Runs the full test suite with coverage reporting
Quality Checks: Runs linting, type checking, and documentation validation
Automatic Triggers: Runs on every push and pull request
Release Workflowยถ
Automated releases to PyPI that trigger on version tags:
Tag-Based Triggers: Automatically runs when you push a version tag (e.g.,
v1.0.0
)Package Building: Builds the Python package using
uv run build
PyPI Publishing: Automatically publishes to PyPI using
twine
Secure Credentials: Uses GitHub secrets for PyPI authentication
Quality Gates: Only releases if all tests and quality checks pass
Quality Gatesยถ
The CI pipeline enforces strict quality standards:
Tests must pass with 80%+ coverage
Code quality checks must pass (Ruff, MyPy)
Security scans must find no vulnerabilities
Documentation must build without errors
Configurationยถ
Automatic Configurationยถ
The workflows are automatically configured based on your template variables:
Python versions: Uses the
python_versions
you specifiedPackage name: Uses your
project_slug
Repository: Uses your
github_username
Dependencies: Automatically includes all your project dependencies
Secrets Requiredยถ
For full functionality, set up these GitHub secrets:
PYPI_API_TOKEN
: For publishing to PyPICODECOV_TOKEN
: For coverage reporting
Best Practicesยถ
Run tests locally before pushing
Use feature branches for development
Write meaningful commit messages
Review CI results before merging
Keep dependencies updated
Next Stepsยถ
Set up deployment environments
Configure branch protection rules
Add performance testing
Set up monitoring and alerting